我已经开发了一个应用程序,它有几个包内的项目... 在其中一个包中的类马上被调用的第一行代码,这引发了可怕的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