2010-11-26 35 views
3

使用複式Java包我做了以下內容:的NoClassDefFoundError發生在運行時,當我在一個單一的Android項目

  1. 在Eclipse中創建一個工作Android項目(而不是庫或測試項目)。它有一個名爲X的包,其中包含一個活動X.A.
  2. 在上述項目中創建一個新的Java包Y,並至少包含一個Y.C類。
  3. 從X.A中調用Y.C(也就是說,從以前工作的原始包中調用新包中的某些東西)。
  4. 構建並運行Android項目。

它生成良好,但在第一行使用Y.C拋出NoClassDefFoundError,說它找不到Y.C.當我重構 - >將Y.C移入包X(因此它現在是X.C)時,運行時異常不再被拋出。怎麼了?

模糊提示:我讀過類似的問題,當構建時間和運行時類路徑以某種方式脫離同步時,可能會發生,但我還沒有找到如何排除故障或修復問題。

回答

2

在定義您的活動時,您的AndroidManifest.xml必須爲位於子包或甚至另一個包中的活動設置完全限定的類名。

完全合格的類名將像com.example.my.cool.app.Activity。或者,當只使用子包時,您可以將它設置爲android:name=".app1.AnotherActivity",當您的基本包看起來像這樣com.example.my.cool

+0

謝謝,我還沒有深入瞭解AndroidManifest,所以我會在下一步做到這一點。我沒有在第二包(Y)中進行任何活動。 – apollodude217 2010-11-27 00:33:24

相關問題