java.lang.NoClassDefFoundError在Android 1.5中使用我自己的包抛出

时间:2010-05-04 15:27:41

标签: android package noclassdeffounderror

我开发了一个应用程序,它的项目中有几个包... 在第一行代码中立即调用其中一个包中的类,这会引发可怕的java.lang.NoClassDefFoundError错误... 我没有得到它,包只是在项目内,它在我的Android 1.6设备上工作正常,但不适用于我的1.5设备... 我不得不说项目最初设置为1.6,但后来我将清单中的4个更改为3 ... 这是不好的做法吗?或者它可能与平台版本无关?

此外,我也从DDMS获得这些行:

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设备是非开发设备......

1 个答案:

答案 0 :(得分:1)

验证者在1.5和1.6之间没有太大变化,因此每个人都应该同样高兴或不高兴。 (在> = 2.0时,它会在首次使用该字段的位置抛出NoSuchFieldError,而不是拒绝整个类。)

问题似乎是Android 1.5(“Cupcake”)中不存在Build.MANUFACTURER字段。我相信它是在1.6(“甜甜圈”)中引入的。