Android:如何从Eclipse ADT应用程序项目引用库项目?

3
我有一个项目,在 Eclipse 中编译是没问题的,但是当我引用另一个同级库项目的类名时,会抛出 NoClassDefFoundError 错误。但是当我从 ant 文件构建项目,它就可以正常运行。
我该如何告诉 Eclipse 构建系统,我的应用程序 .apk 需要从库项目中获得 .class 文件的副本呢?
在这个页面上 http://developer.android.com/guide/developing/eclipse-adt.html#libraryReference,看起来只需要添加库即可没有其他步骤。而且我发现它已经更新了我的 default.properties 文件,使我的 ant 构建工作。
尽管我遵循了这些步骤(我的库项目在应用程序项目属性的 Android 页面中列出),但 Eclipse 在编辑器中无法识别新类。因此,我采取了标准 Eclipse 步骤,将库添加到 Java 构建路径中。现在编译器和 IDE 可以识别这个类,但我的应用程序仍然会崩溃,并抛出 NoClassDefFoundError,即使在 Java 构建路径、顺序和导出中检查了库。
我错过了哪个步骤吗?
背景信息:我先构建了 Eclipse 项目。然后,在另一个目录中,我使用 android create project ... 命令,以所有参数创建了一个完全相同配置的项目。最后,我将 ant build.xml 和 *.properties 文件复制到 Eclipse 项目目录中。我尝试引用的库项目也是同样的做法。

我有时候可以通过清理/重新编译来解决构建错误。经常会出现“转换为Dalvik格式失败,错误代码为1”的问题,原因是出现了两个“IllegalArgumentException: already added…”的错误,一个是src中唯一的类,另一个是库路径中的类。(这是同时使用Android库引用和Eclipse库引用的情况,所以后者可能是预期的。) - Anm
你的库项目中是否包含链接文件夹?ADT的库项目似乎只包括src文件夹,忽略了任何链接文件夹。 - misiu_mp
我有同样的问题,我的问题通过遵循这个解决方案得到了解决。 - Siu Ching Pong -Asuka Kenji-
4个回答

1
我偶尔会遇到这个问题,不确定是什么原因导致的。为了解决这个问题,我必须链接到我的库项目源代码。在主项目的构建路径中,链接到你想要包含的库项目的“src”文件夹。

这似乎只是一个部分解决方案,因为它没有引入子库或者我希望的活动声明。也许在后者上我要求过多了。 - Anm

1
我们遇到了同样的问题(在IntelliJ和Ant中工作,但在Eclipse中不行)。Eclipse中安装了Aptana Studio。移除它后,库项目引用就像广告中所说的那样在Eclipse中工作了。

0

我遇到了类似的问题。即使添加了库项目,所需的文件也没有被包含进来。 正如在thread中讨论的那样,这似乎是一个错误。

我发现在Eclipse的default.properties文件中,由于我的工作项目与库项目不在同一驱动器上(我在Windows上进行开发),因此无法读取库项目位置。将我的项目移动到与库项目相同的驱动器上后,它开始工作了。 在修复该错误之前,这可能是一个解决方法。


0

1) 右键单击您的Android项目。

2) 进入其属性

3) 从左侧显示的菜单中选择Android选项

4) 查看位于右侧、API列表下方的库面板。

5) 单击“添加...”按钮以添加库项目。

请记住,您正在尝试将其作为当前项目的库添加的单独项目应标记为“IsLibrary”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接