【发布时间】:2010-09-23 01:56:16
【问题描述】:
我有一个项目正在编译,但在同级库项目中包含的类名上抛出 NoClassDefFoundError,但仅在从 Eclipse 构建时。当我从 ant 文件构建项目时,它运行得很好。
我如何告诉 Eclipse 构建系统我的应用程序的 .apk 需要来自库项目的 .class 文件的副本。
这个页面... http://developer.android.com/guide/developing/eclipse-adt.html#libraryReference make 听起来就像添加库应该“正常工作”而没有其他步骤。而且我看到它已经用必要的链接更新了我的 default.properties,使我的 ant 构建工作。
尽管遵循了这些步骤(我的库项目列在我的应用程序项目属性的 Android 页面中),Eclipse 仍无法识别编辑器中的新类。因此,我执行了将库添加到 Java 构建路径的标准 Eclipse 步骤。现在编译器和 IDE 可以识别该类,但我的应用程序仍然会因 NoClassDefFoundError 而崩溃,即使在检查了 Java Build Path、Order 和 Export 中的库之后也是如此。
我错过了什么步骤?
一些背景...
我首先构建了 Eclipse 项目。然后,在一个单独的目录中,我使用 android create project ... 和所有参数来创建一个配置相同的项目。最后,我将 ant build.xml 和 *.properties 文件复制到了 Eclipse 项目目录中。我对我试图引用的库项目做了同样的事情。
【问题讨论】:
-
我有时可以通过清理/重新编译来解决构建错误。由于两个“IllegalArgumentException:已添加...”错误,一个仅用于 src 中的类,另一个用于库路径中的类,通常会导致“转换为 Dalvik 格式失败并出现错误 1”。 (这同时使用了 Android 库引用和 Eclipse 库引用,因此可能会出现后者。)
-
您的库项目是否包含链接文件夹? ADT 的库项目似乎只包含 src 文件夹,忽略任何链接的文件夹。
-
我也有同样的问题,关注this solution解决了我的问题。