Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android: Unable to find explicit activity class... startActivity from a PreferenceActivity

I'm trying to start a new Activity from a PreferenceActivity. However, it fails with "Unable to find explicit activity class. Have you declared this activity in your AndroidManifest.xml?"

Well, yeah, I declared it:

<application [......] android:debuggable="true">
    <activity android:name=".AlarmSettings"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name=".FlashLightActivity"></activity>

    <receiver
        android:name="AlarmReceiver"
        android:process=":remote" >
    </receiver>
</application>

AlarmSettings is my PreferenceActivity. AlarmSettings calls FlashLightActivity this way:

Intent i = new Intent(AlarmSettings.this, FlashLightActivity.class);
startActivity(i);

And this is FlashLightActivity:

public class FlashLightActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.flashlight);
   }    
}

... I don't know what to do. Any ideas?

like image 896
danieleds Avatar asked Oct 30 '11 16:10

danieleds


2 Answers

I had this problem too. If you read carefully the error on the logcat, you will know what to do.

You have to declare the activity in the AndroidManifest.xml

    <activity
        android:name=".TheNameOfMyActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
like image 154
Mirey Avatar answered Oct 22 '22 15:10

Mirey


For me this error occurred because I had moved my activity class file to a different package and for some reason Eclipse didn't refactor it correctly. Always use a fully qualified name for your activity and double-check that it is accurate.

like image 29
tpbapp Avatar answered Oct 22 '22 17:10

tpbapp