我試圖在一個項目中創建一個抽象類作爲模板,並在另一個項目中實現它們。 但是,當試圖運行實現模板Activity的Activity時,會彈出NoClassDefFoundError。 我已經將模板項目添加到另一個的Java Build Path中,在「Order and Export」中對其進行了檢查,清理了該項目,但沒有任何幫助。我也試着用1.6編譯器編譯這個項目。所有導致相同的錯誤。 當試圖添加模板項目作爲JAR Eclipse時,表示有一個Manifest文件的重複,並且不會允許它。Android和Eclipse - 具有項目依賴性的java.lang.NoClassDefFoundError
有沒有人有任何想法我可以做什麼來解決這個問題?
這裏的錯誤日誌中我得到:
04-05 00:29:09.941: E/AndroidRuntime(1348): FATAL EXCEPTION: main
04-05 00:29:09.941: E/AndroidRuntime(1348): java.lang.IllegalStateException: Could not execute method of the activity
04-05 00:29:09.941: E/AndroidRuntime(1348): at android.view.View$1.onClick(View.java:2144)
04-05 00:29:09.941: E/AndroidRuntime(1348): at android.view.View.performClick(View.java:2485)
04-05 00:29:09.941: E/AndroidRuntime(1348): at android.view.View$PerformClick.run(View.java:9080)
04-05 00:29:09.941: E/AndroidRuntime(1348): at android.os.Handler.handleCallback(Handler.java:587)
04-05 00:29:09.941: E/AndroidRuntime(1348): at android.os.Handler.dispatchMessage(Handler.java:92)
04-05 00:29:09.941: E/AndroidRuntime(1348): at android.os.Looper.loop(Looper.java:123)
04-05 00:29:09.941: E/AndroidRuntime(1348): at android.app.ActivityThread.main(ActivityThread.java:3683)
04-05 00:29:09.941: E/AndroidRuntime(1348): at java.lang.reflect.Method.invokeNative(Native Method)
04-05 00:29:09.941: E/AndroidRuntime(1348): at java.lang.reflect.Method.invoke(Method.java:507)
04-05 00:29:09.941: E/AndroidRuntime(1348): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-05 00:29:09.941: E/AndroidRuntime(1348): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-05 00:29:09.941: E/AndroidRuntime(1348): at dalvik.system.NativeStart.main(Native Method)
04-05 00:29:09.941: E/AndroidRuntime(1348): Caused by: java.lang.reflect.InvocationTargetException
04-05 00:29:09.941: E/AndroidRuntime(1348): at java.lang.reflect.Method.invokeNative(Native Method)
04-05 00:29:09.941: E/AndroidRuntime(1348): at java.lang.reflect.Method.invoke(Method.java:507)
04-05 00:29:09.941: E/AndroidRuntime(1348): at android.view.View$1.onClick(View.java:2139)
04-05 00:29:09.941: E/AndroidRuntime(1348): ... 11 more
04-05 00:29:09.941: E/AndroidRuntime(1348): Caused by: java.lang.NoClassDefFoundError: scf1984.games.testQuest.TestQuestActivity
04-05 00:29:09.941: E/AndroidRuntime(1348): at scf1984.games.testQuest.TestMainActivity.startTestQuest(TestMainActivity.java:18)
04-05 00:29:09.941: E/AndroidRuntime(1348): ... 14 more
而且清單:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="scf1984.games.testQuest"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="scf1984.games.testQuest.TestMainActivity"
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="scf1984.games.testQuest.TestQuestActivity"
android:label="@string/app_name" >
</activity>
</application>
</manifest>
調用方法:
public void startTestQuest(View v) {
Intent i = new Intent(this,
scf1984.games.testQuest.TestQuestActivity.class);
startActivity(i);
}
TestMainActivity.java的第18行發生錯誤。請顯示此代碼行以及上下文的一些周圍代碼。例如,如果此行使用較短的方法,請發佈整個方法。 – 2013-04-05 00:46:45
我已經添加了請求的方法。 – scf 2013-04-05 00:50:39
你的「模板項目」是一個Android庫項目嗎?如果不是,則將其標記爲這樣。 (我不使用Eclipse太多,所以我不知道確切的步驟來做到這一點。) – 2013-04-05 00:53:44