1

一個在我的應用我的菜單項只是試圖調用另一個活動(即屬於不同的項目在同一個工作區):java.lang.NoClassDefFoundError - 爲什麼?如何解決問題?

myActivity.startActivity(new Intent(myActivity, com.bill.the.App.class)); 

但是,這立即在運行時導致異常:

E/AndroidRuntime(3847): java.lang.NoClassDefFoundError: com.bill.the.App 

爲什麼?

我錯過了什麼?

(項目編制和建設得很好,這只是在運行時會出現此錯誤)

+0

在啓動活動時,您是否已經在目標/模擬器上安裝了第二個項目(您正試圖通過菜單調用)?也許,該項目(因此它的類)沒有安裝,因此無法找到該類。 – 2012-02-16 02:05:43

+0

@ alex.veprik是的,我安裝了第二個項目(使用與此工作區相同的軟件包名稱,但與調用應用程序的軟件包名稱不同)。但是......安裝的第二個項目是建立在不同的工作空間上的。這很重要嗎? – 2012-02-16 02:11:10

回答

3

這可能是因爲含有com.bill.the.App項目或庫包含在編譯中搜索路徑,但在生成APK文件不包括(部署到設備)。如果您以錯誤的方式包含了包含com.bill.the.App的項目或庫,可能會發生這種情況。確保使用Android庫項目(項目屬性 - > Android)或通過將jar文件包含在項目屬性 - > Java Build Path - > Libraries中來包含它。

+0

我確實在調用應用程序中將它作爲庫項目引用,但我沒有在其自己的屬性中將其標記爲「IsLibrary」,因爲它可以是獨立應用程序。我現在正在檢查另一個方向:它是從一個庫項目調用的,因此庫的清單可能應該包含該',而不僅僅是應用程序的清單。 +1現在。 – 2012-02-16 02:30:02

+0

沒有。即使將''添加到Library項目也沒有幫助。這很奇怪。 – 2012-02-16 02:33:49

+1

那麼,我玩了一些與'項目屬性 - > Android'設置(**是庫**複選框*和**添加庫**按鈕),得到了一些'轉換爲Dalvik格式失敗,錯誤1'但我很快就解決了這個問題,這要歸功於[這個答案](http://stackoverflow.com/a/8106366/1124861)。異常解決。 – 2012-02-16 02:59:05

0

活動可以在清單中不是

+0

在調用**應用程序的清單中?如果是這樣,那麼你是對的。它沒有在清單中註冊。讓我檢查一下,註冊是否可以解決問題... – 2012-02-16 02:12:16

+0

嗯......我只是試過了,並沒有解決問題。我實際上在調用應用程序的清單中的<標籤之前添加了',並且我仍然收到此錯誤。 +1然而。 – 2012-02-16 02:25:20

3

註冊只要打開你的AndroidManiFest.xml,並寫在下面的行它在</application>標記之前。

<activity android:name=".App"/> 
+0

這沒有幫助,但我認爲這是解決問題的必要技巧(請參閱我對@Rich的評論)。 +1。 – 2012-02-16 02:26:29