2013-01-17 42 views
1

我想從我的Activity啓動一個新的意圖,但我得到一個NoClassDefFoundError。解決MyClassB.class發生異常。奇怪的是我可以解決其他類,並且錯誤只發生在Android版本2.2和2.3,它在4.0+以上工作正常。Android:NoClassDefError發生在<4.0但不是> = 4.0?

導致錯誤的類和成功解析的其他類與執行代碼的Activity在同一個包中。基本上,下面的代碼給出了2.2/2.3的下面的錯誤,但在4.0+上工作正常。我也嘗試使用完整的軟件包名稱,如:com.me.MyClassB.class,但得到相同的錯誤。

我意識到這個問題很模糊,但是我很困惑,希望有人能幫上忙。

package com.me; 

public class MyActivity extends Activity 
{ 
    protected onCreate(Bundle bundle) 
    { 
     super.onCreat(bundle); 

     Class a = MyClassA.class; 
     Class b = MyClassB.class; 
    } 
} 


01-17 10:37:36.473: E/AndroidRuntime(1976): java.lang.NoClassDefFoundError: com.me.MyClassB 

回答

0

這是造成的,因爲MyClassB.class實現ActionBar.OnNavigationListener。看起來,如果類包含某些更高api級別的代碼,則它們在運行時不能正確設置,導致出現這些類型的錯誤。我預計MyClassB.class在2.3上崩潰,但NoClassDefFoundError特別神祕。

0

我不知道這是否是問題,但在你的onCreate方法,你需要在一開始例如新增super.onCreate(bundle

protected onCreate(Bundle bundle) 
{ 
     super.onCreate(bundle); 
     Class a = MyClassA.class; 
     Class b = MyClassB.class; 
} 
+0

這將解決其他問題,但不是java.lang.NoClassDefFoundError:com.me.MyClassB – 2013-01-17 15:46:28

+0

我編輯了我的僞代碼來包含它。然而,在我的代碼中,「class a = ...」行執行得很好,所以這絕對不是問題 – ab11

相關問題