2010-09-23 70 views
3

我有一个编译项目,但是在兄弟库项目中包含的类名引发一个NoClassDefFoundError,但只有从Eclipse构建时才会引发。当我从ant文件构建项目时,它运行得很好。Android:如何从Eclipse ADT应用程序项目引用库项目?

如何告知Eclipse构建系统,我的应用程序的.apk需要库项目中.class文件的副本。

此页... http://developer.android.com/guide/developing/eclipse-adt.html#libraryReference 使听起来像添加图书馆应该“只是工作”,没有其他的步骤。而且我发现它已经更新了我的default.properties文件,并且有必要的链接让我的ant构建工作。

尽管遵循以下这些步骤(我的库项目在我的应用程序的项目属性的Android页面中列出),但Eclipse无法识别编辑器中的新类。所以我做了将库添加到Java Build Path的标准Eclipse步骤。现在,编译器和IDE可以识别该类,但即使在Java Build Path,Order和Export中检查了库之后,我的应用仍然会与NoClassDefFoundError一起崩溃。

我错过了什么步骤?

一些背景... 我首先构建了Eclipse项目。然后,在一个单独的目录中,我使用了android create project ...以及所有参数来创建一个完全相同的项目。最后,我将ant build.xml和* .properties文件复制到Eclipse项目目录中。我对我试图引用的库项目做了同样的事情。

+0

删除评论 – Anm 2010-09-24 00:31:06

+0

我有时可以通过清理/重新编译来解决构建错误。由于两个“IllegalArgumentException:已经添加...”错误,通常会导致“转换为Dalvik格式失败,并显示错误1”,一个用于仅在src中的类,另一个用于库路径中的类。 (这是使用Android库引用和Eclipse库引用,因此后者可能是预期的。) – Anm 2010-09-24 00:38:27

+0

您的库项目是否包含链接的文件夹? ADT的库项目似乎只包含src文件夹,忽略任何链接的文件夹。 – 2011-05-12 13:26:34

回答

1

我每隔一段时间都会遇到这个问题,不知道是什么原因造成的。要解决这个问题,我必须链接到我的图书馆项目的来源。在主项目的构建路径中,链接到您试图包含的库项目的“src”文件夹。

+0

这似乎只是一个部分解决方案,因为它不会吸引子库或我希望的活动声明。也许我对后者要求太高了。 – Anm 2011-08-02 17:58:17

1

我们遇到了同样的问题(在IntelliJ和Ant中工作,但不在Eclipse中)。在Eclipse中安装了Aptana Studio。删除允许库项目引用在Eclipse中工作的广告。

0

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

2)转到其属性

3)选择从左边

4显示的菜单选项的Android)查看库面板,其是在右侧,API的列表如下。

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

请记住,您试图添加的作为当前项目库的独立项目应标记为“IsLibrary”。

0

我有类似的问题。即使在添加库项目之后,所需的文件也不包括在内。 看来有这个thread讨论的错误。

我发现,在Eclipse的default.properties文件没有被读库项目的位置,因为我的工作项目是不同的驱动器库项目(我是做Windows中的发展)。将我的项目移动到与库项目相同的驱动器后,它开始工作。 这可能会起到解决问题的作用,直到bug修复。

相关问题