0

我的设置如下:

我有一个 android 项目 A 和一个 java 项目 B。项目 A 使用项目 B 中的一些文件。

我的开发环境是eclipse,我已经在构建路径中包含了Project B,并将其标记为“Order and export”。

该项目构建良好,但在运行时我得到一个

java.lang.NoClassDefFound 错误,当我试图从项目 B 中引用一个类时。

我该如何解决这个问题?

我正在使用 eclipse Juno 和 ADT 20.0.3。

谢谢。

4

4 回答 4

0

当我尝试使用同一个项目本身引用另一个类时,我遇到了同样的问题。就我而言,当我重新检查 android 依赖项时,问题得到了解决。我为一个需要的文件添加了两个 jar 文件。我的项目中需要 android-support-v4.jar 文件。我错误地添加了两次库。当我删除其中一个时,错误得到了解决。

于 2014-07-03T12:50:56.760 回答
0

对我来说,这是在使用 AIDE 开发环境时发生的。在过去的一年里,这种情况已经发生了几次。

当 Java 菱形运算符用于指定函数的泛型类型时,程序将编译,但 Dalvic 引擎因 NoClassDefFound 异常而崩溃。

为了解决这个问题,我必须明确定义泛型类型。

顺便说一句,这种崩溃可能发生在与实际问题完全不同的地方。例如,我们有 A 类和 B 类。错误代码位于 A.myMethod()。当 B 类尝试访问 A 类的任何部分,甚至是不相关的东西,例如 A.myOther() 方法时,就会发生崩溃。

这是因为 Java/Dalvic 仅在首次访问时才在运行时加载类。

于 2014-12-05T10:43:31.507 回答
0

您还可以尝试将所需的 java 类导出到 jar 中,并将该 jar 包含在您的 Android 项目中。

于 2013-03-21T10:37:25.397 回答
0

当您谈到更新了 Eclipse 和 ADT 时,也许您也将环境更改为 Java 7?如果是这种情况,答案将是:切换回 Java 1.6.x,因为 Android 不(还?)支持 Java 7。

您需要在以下位置更改“编译器合规性级别”:

窗口 - 首选项 - Java - 编译器 - 编译器合规级别

希望有效,至少它对我有用: NoClassDefFoundError when references from an Android-Project to a standard Java-Project

于 2013-03-21T10:10:22.677 回答