ChiefTwoPencils
ChiefTwoPencils

Reputation: 13930

Unable to find explicit activity class when started from fragment

I have a fragment that I'm trying to start another activity from in a button click like this:

Intent i = new Intent(getActivity(), RoundPagerActivity.class);
// put extras
startActivity(i);

The app crashes on the call to startActivity(i) with a Fatal Exception. Here's the logcat:

08-24 22:08:12.625: D/AndroidRuntime(9865): Shutting down VM 
08-24 22:08:12.625: W/dalvikvm(9865): threadid=1: thread exiting with uncaught exception(group=0x40c231f8) 
08-24 22:08:12.720: E/AndroidRuntime(9865): FATAL EXCEPTION: main 
08-24 22:08:12.720: E/AndroidRuntime(9865): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.wilk.android.tablink/com.wilk.android.tablink.RoundPagerActivity}; have you declared this activity in your AndroidManifest.xml? 
08-24 22:08:12.720: E/AndroidRuntime(9865):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1511) 
08-24 22:08:12.720: E/AndroidRuntime(9865):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1387) 
08-24 22:08:12.720: E/AndroidRuntime(9865):     at android.app.Activity.startActivityForResult(Activity.java:3190) 
08-24 22:08:12.720: E/AndroidRuntime(9865):     at android.support.v4.app.FragmentActivity.startActivityFromFragment(FragmentActivity.java:826) 
08-24 22:08:12.720: E/AndroidRuntime(9865):     at android.support.v4.app.Fragment.startActivity(Fragment.java:838) 
08-24 22:08:12.720: E/AndroidRuntime(9865):     at com.wilk.android.tablink.RoundListFragment.onListItemClick(RoundListFragment.java:94) 
08-24 22:08:12.720: E/AndroidRuntime(9865):     at android.support.v4.app.ListFragment$2.onItemClick(ListFragment.java:58) 
08-24 22:08:12.720: E/AndroidRuntime(9865):     at android.widget.AdapterView.performItemClick(AdapterView.java:292) 
08-24 22:08:12.720: E/AndroidRuntime(9865):     at android.widget.AbsListView.performItemClick(AbsListView.java:1175) 
08-24 22:08:12.720: E/AndroidRuntime(9865):     at android.widget.AbsListView$PerformClick.run(AbsListView.java:2703) 
08-24 22:08:12.720: E/AndroidRuntime(9865):     at android.widget.AbsListView$1.run(AbsListView.java:3456) 
08-24 22:08:12.720: E/AndroidRuntime(9865):     at android.os.Handler.handleCallback(Handler.java:605) 
08-24 22:08:12.720: E/AndroidRuntime(9865):     at android.os.Handler.dispatchMessage(Handler.java:92) 
08-24 22:08:12.720: E/AndroidRuntime(9865):     at android.os.Looper.loop(Looper.java:137) 
08-24 22:08:12.720: E/AndroidRuntime(9865):     at android.app.ActivityThread.main(ActivityThread.java:4507) 
08-24 22:08:12.720: E/AndroidRuntime(9865):     at java.lang.reflect.Method.invokeNative(Native Method) 
08-24 22:08:12.720: E/AndroidRuntime(9865):     at java.lang.reflect.Method.invoke(Method.java:511) 
08-24 22:08:12.720: E/AndroidRuntime(9865):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790) 
    08-24 22:08:12.720: E/AndroidRuntime(9865):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 
    08-24 22:08:12.720: E/AndroidRuntime(9865):     at dalvik.system.NativeStart.main(Native Method)

Here's my manifest file:

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

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

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

        <!-- other activities -->

        <!-- activity that calls the pager activity -->
        <activity
            android:name="com.wilk.android.tablink.RoundListActivity"
            android:label="@string/app_name" >

        </activity>

        <!-- activity that is called -->
        <activity
            android:name="com.wilk.android.tablink.RoundPagerAcivity"
            android:label="@string/app_name" >
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="com.wilk.android.tablink.RoundListActivity" />

        </activity>

    </application>

</manifest>

The odd thing is I have another app that does this the same exact way w/o issue. I've looked at other questions here and am pretty sure I've exhausted those choices, at least the ones that appeared to apply. I've tried to set breaks points in the new activity as well but none are hit. Can anyone see something I've newbly overlooked?

Upvotes: 1

Views: 6591

Answers (1)

Andy Gaskell
Andy Gaskell

Reputation: 31761

It's misspelled in your manifest. You have: android:name="com.wilk.android.tablink.RoundPagerAcivity" It should be android:name="com.wilk.android.tablink.RoundPagerActivity".

Also, I don't know if it matters, but in my application I also have an attribute on the "detail" activity like this:

    <activity
        android:name="com.wilk.android.tablink.RoundPagerActivity"
        android:label="@string/app_name"
        android:parentActivityName="com.wilk.android.tablink.RoundListActivity">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.wilk.android.tablink.RoundListActivity" />
    </activity>

Upvotes: 8

Related Questions