I'm trying to use an explicit intent to display a MapView in my android app. Although I don't see anything wrong with my code, I keep getting a "NoClassDefFoundError" when I try to start my activity. Basically, from my main activity (SetCriteria), I create the explicit intent when user presses a button :
Log.i(TAG, "Showing map..");
try{
Intent intentMap = new Intent(view.getContext(), AddLocation.class);
startActivity(intentMap);
}catch(Throwable ex) {
Log.e(TAG, "Error occured while trying to display map", ex);
}
My LogCat displays:
java.lang.NoClassDefFoundError: com.adm.AddLocation
...
Caused by: java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
My Manifest looks like this:
<application android:label="@string/app_name" android:icon="@drawable/ic_launcher_red">
<uses-library android:name="com.google.android.maps"/>
<activity android:name=".SetCriteria"
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=".AddLocation"
android:label="@string/add_location">
</activity>
</application>
I have only one package: com.adm. So what could be wrong? I have no problem launching a map by using Intent(Intent.ACTION_VIEW, uri) but I want my specific activity dealing with the map.
You should remove the ".
" (dot) before your class name in the second activity declaration, so it would look like:
<activity android:name="AddLocation" android:label="@string/add_location">
From the manifest snippet it is not clear, what package you have defined.
You need to put it in the top-level manifest element:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.adm"
>
<application android:icon="@drawable/icon" android:label="@string/app_name" ...
If you do not add that, the system will not use a package and your activity ".AddLocation
" will end as "AddLocation" without a class, which is not the same as com.adm.AddLocation
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With