我已經開發了一個應用程序,它有幾個包內的項目... 在其中一個包中的類馬上被調用的第一行代碼,這引發了可怕的java.lang.NoClassDefFoundError錯誤... 我不明白,這個軟件包只是在項目中,它在我的Android 1.6設備上工作正常,但不能用於我的1.5設備。 我不得不說,該項目最初設置爲1.6,但後來我將清單內的內容從4改爲3 ... 這是不好的做法嗎?或者,它可能與平臺版本無關?java.lang.NoClassDefFoundError拋出我自己的包在Android 1.5
而且我得到這些線路從DDMS WEL:
05-04 17:24:59.921: WARN/dalvikvm(2041): VFY: unable to resolve static field 2 (MANUFACTURER) in Landroid/os/Build;
05-04 17:24:59.921: WARN/dalvikvm(2041): VFY: rejecting opcode 0x62 at 0x0034
05-04 17:24:59.921: WARN/dalvikvm(2041): VFY: rejected ***/android/managementModule/Management;.getDeviceSpecifics()V
05-04 17:24:59.921: WARN/dalvikvm(2041): Verifier rejected class ***/android/managementModule/Management;
那也嘗試檢索設備本身的一些信息字段的ManagementModule ... 同樣,這只是正常的1.6設備,儘管這是一個開發設備,而我的1.5設備是一個非開發設備...
對於向後兼容性:http://android-developers.blogspot.com/2009/04/backward-compatibility-for-android.html。如果只是這個單一字段,請使用反射。 – fadden 2010-05-06 16:58:57