在Eclipse中引用Android库项目的推荐方法是什么

在Eclipse中引用Android库项目的推荐方法是什么,android,eclipse,Android,Eclipse,在我通过Eclipse了解Android开发的过程中,有一件事一直困扰着我,那就是让引用Android库项目的Android应用程序项目可靠地工作。有时,由于缺少库中定义的类引用,应用程序项目无法生成,有时它生成,但在运行时崩溃,引用库中定义的类,并出现错误链接 java.lang.NoClassDefFoundError: com.dave.customviewtestlib.LibTestClass 由logcat显示 我正在使用Android开发者工具构建:v21.0.1-543035

在我通过Eclipse了解Android开发的过程中,有一件事一直困扰着我,那就是让引用Android库项目的Android应用程序项目可靠地工作。有时,由于缺少库中定义的类引用,应用程序项目无法生成,有时它生成,但在运行时崩溃,引用库中定义的类,并出现错误链接

java.lang.NoClassDefFoundError: com.dave.customviewtestlib.LibTestClass
由logcat显示

我正在使用Android开发者工具构建:v21.0.1-543035

我已经创建了一个工作区,其中包含最简单的Android应用程序项目,并引用了最简单的Android库项目。我到底应该如何在Eclipse中将它们联系在一起?他们两人都自己建造得很好。然后我编辑Android应用程序项目的Java构建路径。令人困惑的是,参考图书馆项目的方法似乎很多。有时一种方法有效,然后停止工作,另一种方法在开始工作之前不起作用。我应该这么做吗

在应用程序项目的Java构建路径|项目中,添加库 项目,或 在应用程序项目的Java构建路径|库中,添加Jar并指向包含库的类和其他资源的.Jar,或者 在应用程序项目的Java构建路径|库中,添加类文件夹并指向库项目包含类的bin文件夹,或 在应用程序项目的Java构建路径|源中,添加文件夹并指向库项目的源文件夹,或 还有别的吗? 此外,还有神秘的Java构建路径| Order and Export选项卡。这是什么意思

我还有一个相关的问题:这些所谓的Android库是像静态库一样的吗?你在构建时引用它们,代码被吸入其中,在运行时它只是应用程序二进制文件的一部分,还是像动态库一样,它们可以单独安装在设备上?我知道这都是Java,所有的类都是在运行时由类加载器加载的,但我认为还有一个重要的区别。大多数教程和参考资料都是如此简单,要得到答案是没有希望的


任何帮助都能真正帮助我减少烦恼:

在PackageExplorer视图中:

右键单击库项目->项目属性->android选项卡

检查:这是图书馆

右键单击Android项目->项目属性->Android选项卡

单击“添加”按钮,然后从列表中选择库项目

为了回答静态问题,Android库项目和jar库的区别在于,Android工具会自动为您的项目修复资源xml引用、生成的R文件等,然后将类打包到.jar文件中,并将其添加到项目的apk中。所以它是静态包含的


至于构建路径、订单和导出选项卡。构建路径是您可以向项目添加:.jar文件、工作空间中的其他项目以及其他源文件的位置。在这里的order/export选项卡中,您可以选择哪些库/类文件将静态地包含在项目的jar文件中,或者在Android项目中包含在apk中

还可以看到这些所谓的Android库,比如静态库——是的,尽管它们也在资源布局、绘图等中编译。大多数教程和参考资料都被简化了,获得答案是没有希望的——这在文档、书籍和StackOverflow上的许多答案中都有介绍。见鬼,谷歌搜索添加android库项目的结果会在第一页找到答案。是的,部分问题是Eclipse似乎让项目处于不一致/糟糕的状态。我通过Java构建路径|库|添加类文件夹错误地引用了Android库。我在运行时收到ClassDefNotFoundError。因此,我根据这里的说明和您提供的链接,更改了引用以使用Android选项卡。你猜怎么着?我仍然得到了ClassDefNotFoundError。我不得不删除应用程序项目的/bin文件夹来修复它。是的,我尝试过清理和刷新,但仍然出现错误,直到我从文件系统中删除/bin文件夹并重新构建。我已经使用VisualStudio和其他IDE 15-20年了,当您进行更改然后重新构建时,它们总是能够很好地进行更改,而不需要额外的神秘步骤。谢谢,这很有帮助。我发誓我已经尝试过很多次了,但是当我创建了一个新的工作区、新的应用程序和库项目时,遵循你的步骤是有效的。我感到困惑的一部分是,Eclipse似乎陷入了糟糕的状态。例如,我有一个Android库,应用程序通过Java构建路径|库|添加类文件夹引用该库。然后我从那里删除了它,并添加了对Android选项卡的引用,正如您上面所说的。在清洁、刷新和reb后 构建/安装时,我遇到了可怕的ClassDefNoFoundError。我不得不删除/bin文件夹来修复它。