我有一个相当大的Android应用程序项目,它引用了几个库项目。一切都很好,直到我将eclipse ADT插件升级到最新版本(v22)。当然,我也升级了SDK。我在eclipse中没有看到任何编译错误,但当我在电话上运行项目时,我得到了一个NoClassDefFoundError。

java.lang.NoClassDefFoundError: org.acra.ACRA
....

arca库包含在一个引用库项目中(在libs文件夹中),我可以在包资源管理器中的“Android Private Libraries”中看到它,也如我所说,没有编译错误。该项目在没有升级ADT的其他所有计算机上运行良好。

我已经尝试了一大堆东西,包括但不限于:

重新安装android SDK 下载一个新的ADT包 删除我所有的代码,再从git中得到它 将库复制到应用程序项目中 注释掉使用这个库的代码-我只是得到了下一个库相同的错误

一切都没有成功,所以我真的很绝望。

如果有人能给我一个如何解决这个问题的提示,我将非常高兴。


当前回答

我也有同样的问题,我的adt是22.0.1。上面的解决方案都不奏效。当将外部库项目添加到工作项目时。我总是检查工作项目的gen文件夹,如果外部库项目的R在那里(连同包名),那么只有外部库项目被导出。在我的根文件夹没有packagename的外部库显示。

所以我检查了项目。属性文件,没有任何外部库链接目前android.library.reference。1 =。所以我手动添加了外部库引用,即使我已经添加了从项目->属性->Java构建路径->项目->添加。手动编辑项目。物业为我做了所有的工作。

其他回答

我也遇到过类似的问题,花了大约3个小时,但这里提出的决定都没有帮助…最后我找到了问题的根源:我的项目文件&项目。属性是只读的。当我在GUI中这样做时,Eclipse只是无声地忽略库依赖关系中的任何更改!

我也有同样的问题,我的adt是22.0.1。上面的解决方案都不奏效。当将外部库项目添加到工作项目时。我总是检查工作项目的gen文件夹,如果外部库项目的R在那里(连同包名),那么只有外部库项目被导出。在我的根文件夹没有packagename的外部库显示。

所以我检查了项目。属性文件,没有任何外部库链接目前android.library.reference。1 =。所以我手动添加了外部库引用,即使我已经添加了从项目->属性->Java构建路径->项目->添加。手动编辑项目。物业为我做了所有的工作。

我也遇到过类似的问题,我的答案与CommonsWare的略有不同。这是我的截图:

检查后,在我的构建重新开始工作。

我也有同样的问题。是因为日食项目。 为了解决这个问题,我在eclipse中创建了一个新项目,复制我现有的项目类和资源,然后再次启动eclipse并添加我的自定义包含。

引用他的广告开发帖子《Streets of Boston》:

升级时,新的“Android Private”的“Order and Export” Libraries并不总是被检查。android-support-v4.jar现在已经发布了 这个“Android私有库”部分。 要解决这个问题,请转到“订购和导出”,并选中“Android Private” 库”。然后刷新/清洁/重建。 当你完成了对图书馆项目的“修复”后,你可能需要关闭 并重新打开任何依赖的项目,因为他们可能看不到这个“修复” 立即。

试一试,如果幸运的话,它会解决你的问题。