0

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

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

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

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

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

非常感谢你的帮助。

4

4 回答 4

0

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

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

我在另一个Stackoverflow 问题中发现了这个警告。我用 HexEditor 从不工作的 .jar 打开了一个类文件,并将 Major-Version-Byte 更改为 0x32 并且它工作。我知道这不是解决方案,因为类中可能存在Java 7的特性,因此类文件不再起作用,但证明这是Java版本的问题

于 2013-03-27T13:05:39.230 回答
0

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

于 2013-03-26T16:13:42.627 回答
0

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

于 2013-03-26T15:34:49.233 回答
0
  1. 确保您的类与 Android 中已经存在的类不具有相同的名称。在构建包时,由于“优化”而省略了具有相同名称的类。

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

于 2013-03-26T15:56:47.860 回答