适用于Android的外部库项目的NoClassDefFoundError

Fu8*_*u86 18 java eclipse android android-library

我使用eclipse进行谷歌Android开发.

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

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

编辑:将jar文件添加到导出的条目中([x] my.jarOrder and Export库项目的-Tab上)

是否有一种干净的方式让这个工作?

yor*_*rkw 15

这里有官方API明确说明:

库项目可以包含JAR库

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

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

从SDK r17更新:

现在由ADT自动处理,请在此处查看ADT 17.0.0版本的新功能:

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


Gar*_*eve 7

对于那些遵循这些步骤的人(甚至检查"Order and Export"中的项目)并且仍然在API 17中有java.lang.ClassNotFoundException,最后一步是检查您的编译器是否不能与Java 1.7一起运行.如果是1.7,则应将其更改为1.6以用于所有项目.之后它将要求重建所有项目并成功运行在我的手机上:)

要在eclipse中更改java编译版本,请参见:项目属性> Java编译器>编译器符合级别:1.6