简体   繁体   中英

ActivityNotFoundException: but activity has been declared in manifest

hoping for some help. I am receiving an error:

04-13 15:01:45.336: E/AndroidRuntime(11065): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.domakecreatedesign.getfit/com.domakecreatedesign.runtracker.RunActivity}; have you declared this activity in your AndroidManifest.xml? ...

However I have declared said class RunActivity in the manifest. However, I notice that the path is not correct, it should be calling com.domakecreatedesign.runtracker.RunActivity, however as you can see from above, it is making a call for: com.domakecreatedesign.getfit/com.domakecreatedesign.runtracker.RunActivity...

I have no idea why this is. Here is my my manifest xml

        <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.domakecreatedesign.getfit"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="19" />

    <permission
        android:name="com.domakecreatedesign.getfit.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-permission android:name="com.domakecreatedesign.getfit.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission
        android:name="android.permission.GET_ACCOUNTS"
        android:maxSdkVersion="19" />
    <uses-permission
        android:name="android.permission.USE_CREDENTIALS"
        android:maxSdkVersion="19" />

    <uses-feature
        android:name="android.hardware.location.gps"
        android:required="true" />
    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/getfit_icon"
        android:label="@string/app_name"
        android:theme="@style/Theme.AppCompat.Light" >

        <meta-data android:name="com.google.android.gms.version" 
            android:value="@integer/google_play_services_version" />


        <!-- Splash screen -->

        <activity
            android:name="com.domakecreatedesign.getfit.SplashScreen"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Black.NoTitleBar" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <!-- Main Activity -->
        <activity
            android:name="com.domakecreatedesign.getfit.MainActivity"
            android:label="@string/app_name" />

        <activity
            android:name="com.domakecreatedesign.getfit.ChooseLogin"
            android:label="@string/title_activity_fblogin" />


        <activity
            android:name="com.domakecreatedesign.getfit.gplus_Login"
            android:label="@string/app_name" />

        <activity
            android:name="com.domakecreatedesign.getfit.Main_Menu"
            android:label="@string/app_name" />


        <activity
            android:name="com.domakecreatedesign.runtracker.RunListActivity"
            android:label="@string/app_name" />


        <activity
            android:name="com.domakecreatedesign.runtracker.RunMapActivity"
            android:label="@string/app_name" />

        <activity
            android:name="com.domakecreatedesign.runtracker.RunActivity"
            android:label="@string/app_name" />




        <receiver
            android:name=".TrackingLocationReceiver"
            android:exported="false" >
            <intent-filter>
                <action android:name="com.domakecreatedesign.runtracker.ACTION_LOCATION" />
            </intent-filter>
        </receiver>

        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="AIzaSyATK_V5Ae2g7uJQM1EBhEcPZAL19B8jBuc" />
    </application>

</manifest>

And the calling method is:

@Override
public void onListItemClick(ListView l, View v, int position, long id) {
    // the id argument will be the Run ID; CursorAdapter gives us this for free
    Intent i = new Intent(getActivity(), com.domakecreatedesign.runtracker.RunActivity.class);
    i.putExtra(com.domakecreatedesign.runtracker.RunActivity.EXTRA_RUN_ID, id);
    startActivity(i);
}

Also worth noting, the application is contained within two packages

  1. com.domakecreatedesign.getfit
  2. com.domakecreatedesign.runtracker

Does this need to be declared somehow in the manifest?

Any help would be very much appreciated.

Many thanks

try ActivityName.this instead of getActivity()

Intent i = new Intent(getActivity(), com.domakecreatedesign.runtracker.RunActivity.class);

something like this,

Intent i = new Intent(AcitivityName.this, com.domakecreatedesign.runtracker.RunActivity.class);

Try this..

Intent i = new Intent();
i.setComponent(new ComponentName("com.domakecreatedesign.getfit", "com.domakecreatedesign.runtracker.RunActivity"));
startActivity(i);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM