我試圖使用顯式意圖在我的android應用程序中顯示一個MapView。儘管我沒有看到我的代碼有任何問題,但當我嘗試啓動我的活動時,我仍然收到「NoClassDefFoundError」。 基本上,從我的主要活動(SetCriteria),我創建了明確的意向時,用戶按下一個按鈕:Android顯式意圖拋出NoClassDefFound錯誤
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);
}
我的logcat顯示:
java.lang.NoClassDefFoundError: com.adm.AddLocation
...
Caused by: java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
我的清單看起來是這樣的:
<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>
我只有一個包:com.adm。那麼有什麼可能是錯的?我用Intent(Intent.ACTION_VIEW,uri)啓動地圖沒有問題,但我想要處理地圖的具體活動。
它現在的作品,謝謝。我甚至都沒有想到這是問題所在,因爲我在Manning的「Android in Action」中讀到過,點的缺失有時會導致調試時間長達數小時......並且應該始終存在。 – joanna 2011-05-01 16:29:43
對,如果它從啓動器/主要活動中丟失。儘管我做了幾個小時的調試,直到出現,但其他活動不需要它,除非它們在內部包中,例如'com.adm.activities'。那麼你應該聲明它爲'android:name =「。activities.AddLocation」'。 +1的問題,希望它能幫助別人! – rekaszeru 2011-05-01 16:32:30
當我嘗試顯式啓動一個MapActivity Intent時,我看到了同樣的問題,NoClassDefFErError。但是,那 」。」在清單中似乎沒有任何影響。我的問題是我在清單中缺少「 」行。不過,對於使用「inner-packages」的說明+1。 –
plainjimbo
2011-05-22 22:46:55