针对Android的外部库项目的NoClassDefFoundError是怎么使用的?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (31)

我使用eclipse进行Google Android开发。

我创建了一个库项目([x] Is Library在Android设置中),其中包含一个外部jar文件(Referenced Libraries)。该库项目在另一个项目中引用(实际项目将使用库项目)。这是通过在Android设置下添加项目完成的。

源代码编译,但如果我想在设备上执行它,我会得到一个类库的NoClassDefFoundError,它是包含在库项目中的jar文件

有没有一种更好的方式来得到这个工作?

提问于
用户回答回答于

在官方API中明确指出:

一个库项目可以包含一个JAR库 您可以开发自己包含JAR库的库项目,但是您需要手动编辑从属应用程序项目的构建路径并向JAR文件添加路径

jar库必须手动添加到依赖应用程序项目的构建路径中,而不仅仅是库项目构建路径本身。

从SDK r17更新:

ADT现在会自动处理这个问题,请在此处查看ADT 17.0.0发行版的新功能:

增加了自动设置JAR依赖项的功能。/ libs文件夹中的任何.jar文件都被添加到构建配置中(类似于Ant构建系统的工作方式)。另外,库项目所需的.jar文件也会自动添加到依赖于这些库项目的项目中。

用户回答回答于

对于那些遵循这些步骤的人,并且API 17中仍然存在java.lang.ClassNotFoundException,最后一步是检查编译器是否不与Java 1.7一起运行。如果是1.7,那么你应该把它改为1.6为所有你的项目。之后,它会要求重建所有的项目,并成功地在我的手机上运行。

要更改eclipse中的java编译版本,它位于:项目属性> Java编译器>编译器符合性级别:1.6。

扫码关注云+社区