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);
If i'm not mistaken, the
i.setClassName("com.WAPP.SetLocation","com.WAPP.SetLocation.setLocationActivity");
should bei.setClassName(getBaseContext(),"setLocationActivity");
ReferenceAlso try this syntax:
and try removing the starting dot from:
in your manifest you declared it as .SetLoction.setLocationActivity but the package name is com.WAPP.SetLocation so you need to prefix that again.
In Xamarin Android, make sure that your Activity class has an Activity attribute
With that you are making sure that your activity is registered in AndroidManifest.xml
The first parameter is application package not the package where the activity is.
You can invoke the Activity like this.
It is preferred as SYLARRR suggested to have Android automatically figure that out for you. Hence the call as..
It's recommended per java standards to have the package name all lower-cased and the class name as CamelCased.
In additional to the above answers make sure that your activities are declared inside application in manifest
If the new activity not in the same packet with MainActivity(you call from here?), try declare on manifest
and in the caller
Hope this helps!