Question

[Solved] Android error “unable to find explicit activity class”

I have an android project with several packages. The structure of the packages in this case is com.WAPP.SetLocation is the package that contains the activity I want to run.

In my manifest, com.WAPP is considered the base package:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.WAPP"
      android:versionCode="1"
      android:versionName="1.0">

My activities are declared in my manifest as:

<activity android:name=".mainScreenActivity"></activity>
<activity android:name=".SetLocation.setLocationActivity"></activity>

The mainScreen activity displays fine, since it is inside the com.WAPP package. But when I try to run the setLocationActivity, I get the unable to find explicit class error. Here is how I have the intent parameters:

Intent i = new Intent();
            i.setClassName("com.WAPP.SetLocation",
                           "com.WAPP.SetLocation.setLocationActivity");
            startActivity(i);

Solution #1:

The first parameter is application package not the package where the activity is.

You can invoke the Activity like this.

Intent i = new Intent();
i.setClassName("com.WAPP",
               "com.WAPP.SetLocation.setLocationActivity");
startActivity(i);

It is preferred as SYLARRR suggested to have Android automatically figure that out for you. Hence the call as..

startActivity(new Intent(this, setLocationActivity.class));

It’s recommended per java standards to have the package name all lower-cased and the class name as CamelCased.

Respondent: Jeremy Edwards

Solution #2:

If the new activity not in the same packet with MainActivity(you call from here?), try declare on manifest

<activity android:name="com.WAPP.SetLocation.setLocationActivity"></activity>

and in the caller

Intent intent = new Intent(this, setLocationActivity.class);
startActivity(intent);

Hope this helps!

Respondent: Huy Hóm H?nh

Solution #3:

In additional to the above answers make sure that your activities are declared inside application in manifest

<application
    android:allowBackup="true"
    android:label="@string/app_name"
    android:supportsRtl="true">

    <activity android:name=".mainScreenActivity"></activity>
    <activity android:name=".SetLocation.setLocationActivity"></activity>

</application>
Respondent: polis

Solution #4:

If i’m not mistaken, the i.setClassName("com.WAPP.SetLocation","com.WAPP.SetLocation.setLocationActivity"); should be i.setClassName(getBaseContext(),"setLocationActivity"); Reference

Also try this syntax:

startActivity(new Intent(MyActivity.this, setLocationActivity.class));

and try removing the starting dot from:

<activity android:name=".SetLocation.setLocationActivity"></activity>
Respondent: Indrek Kõue

Solution #5:

Do it by this way:

Intent intent = new Intent();
intent.setComponent(
        new ComponentName("com.WAPP", "com.WAPP.SetLocation.setLocationActivity"));
startActivity(i);
Respondent: Daniel De León

Solution #6:

In Xamarin Android, make sure that your Activity class has an Activity attribute

[Activity(Theme = "@style/MyTheme")]
public class MyActivity : ActivityBase
{
...
}

With that you are making sure that your activity is registered in AndroidManifest.xml

Respondent: Amadeus Sánchez

Solution #7:

I had the same kind of issue in the project . It wasted me almost a full day . i tried all the solutions that are mentioned above , but none of the solutions worked for me .
After all the hard work i just “Rebuild” the project and “clean” The project and it worked perfectly .
Note:
Before going through all the process u just needed to have a try to these options.

Respondent: Aakib Jabbar

Solution #8:

First of all, make sure that you have created activity and not the class. And, if it is activity then go to the manifest.xml file and look at the path of that particular file.

This worked for me absolutely well!!

https://forums.xamarin.com/discussion/104102/android-content-activitynotfoundexception-unable-to-find-explicit-activity-class

this is for reference

Respondent: shivambhanvadia

Solution #9:

in your manifest you declared it as
.SetLoction.setLocationActivity
but
the package name is com.WAPP.SetLocation
so you need to prefix that again.

Intent i = new Intent();
            i.setClassName("com.WAPP.SetLocation",
                           "com.WAPP.SetLocation.SetLocation.setLocationActivity");
            startActivity(i);
Respondent: Michal Palczewski

Solution #10:

This might be due to not registering your next activity XML file in the manifest. Register your next activity XML file in the AndroidManifest.xml file

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

Hope it helps.

Respondent: Hassan Asghar

Solution #11:

Thia might be problem if ImageView is used 🙁

Intent intent = new Intent(context,ImageView.class);
                        intent.putExtra("imageurl",clients_document_return.getUrl());
                        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

                        v.getContext().startActivity(intent);

and your class name might me Imageview.class
so first check all small capital in class name

Thanks 🙂

Respondent: Vaibhav Pallod

The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .

Most Popular

To Top
India and Pakistan’s steroid-soaked rhetoric over Kashmir will come back to haunt them both clenbuterol australia bossier man pleads guilty for leadership role in anabolic steriod distribution conspiracy