Android - jar更改后的NoClassDefFoundError

时间:2013-03-26 15:25:55

标签: android java-7 noclassdeffounderror

我知道有一些类似的问题,但没有任何解决方案对我有帮助。 当我尝试访问(现有)类时,我得到一个java.lang.NoClassDefFoundError 在我的项目组的自创.jar中。

这个.jar在普通的javaProject中运行良好,但不适用于Android。 但是这个.jar的旧版本在Android上运行良好。

我正在使用Eclipse + Android开发工具开发 - 插件(版本21) 我已将.jar放在Project_Home / libs文件夹中。 编译时没有错误。

在抛出异常之前,有一些“dalvikvm - 找不到类......引用......”错误。

我认为,Java版本可能存在问题,因为我们的项目组最近开始使用Java 7,但我不确定并且不知道如何解决它。

非常感谢你的帮助。

4 个答案:

答案 0 :(得分:0)

将lib重命名为libs并更新构建路径,然后重试

答案 1 :(得分:0)

  1. 确保您的课程名称与Android中已有的课程名称不同。在构建包时,由于“优化”,省略了具有相同名称的类。

  2. Android库大多是针对1.5编译的。并非所有库都存在于Android中。您的软件包可能依赖于系统中不存在的其他库。

答案 2 :(得分:0)

我认为如果项目编译正常,那么我们可以排除复制或java buildpath中的任何错误。我得到此错误的唯一另一次是我的导入错误的代码。我建议你重新检查你的导入并重新创建R.java文件。

答案 3 :(得分:0)

通常我不想回答我自己的问题,但我希望它会对某人有所帮助 我没有看到其他警告(不是在Logcat中,它在控制台中):

“Dx坏类文件魔术(cafebabe)或版本(0033.0000)”

我在其他Stackoverflow question中找到了此警告。 我用HexEditor从不工作的.jar中打开了一个类文件 并将Major-Version-Byte更改为0x32并且它有效。 我知道这不是一个解决方案,因为类中可能有Java 7的功能, 所以类文件不再起作用,但它证明它是Java版本的问题