升级到ADT 22后,库不会再添加到APK

时间:2013-05-16 20:34:17

标签: android eclipse adt

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

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

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

我已经尝试了很多东西,包括但不限于:

  • 重新安装android SDK
  • 下载新的ADT套件
  • 删除我的所有代码,然后从git
  • 再次获取
  • 将相关库复制到应用项目
  • 注释掉使用此库的代码 - 我只是为下一个库获得相同的错误

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

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

7 个答案:

答案 0 :(得分:337)

his adt-dev post引用波士顿街道:

  

升级时,新的'Android Private'的'Order and Export'   并不总是检查库。 android-support-v4.jar现在在   这个“Android私人图书馆”部分。

     

要解决此问题,请转到“订购和导出”,然后选中“Android私有”   图书馆。然后刷新/清理/重建。

     

为库项目完成此“修复”后,您可能需要关闭   并重新打开任何依赖项目,因为他们可能看不到这个'修复'   立即。

给这一点,运气好,它将解决你的问题。

enter image description here

答案 1 :(得分:10)

仅仅检查Android私有库是不够的,我还必须在Android SDK Manager中安装 Android SDK Build-tools

答案 2 :(得分:4)

我也有同样的问题而adt22.0.1。上述解决方案都没有奏效。进一步将外部库项目添加到工作项目时。我总是检查工作项目的gen文件夹,如果有R外部库项目(以及包名),那么只有外部库项目出口。在我的gen文件夹中,没有显示外部库的packagename

所以我查看了project.properties文件,并且没有任何外部库链接存在android.library.reference.1=。所以我在那里手动添加了外部库引用,即使我已经从project->properties->Java Build Path->Projects->Add添加了。因此,手动编辑project.properties为我完成了所有工作。

enter image description here

答案 3 :(得分:4)

我遇到过类似的问题,花了大约3个小时,但是这里提出的决定都没有帮助......最后我找到了问题的根源:我的项目文件& project.properties是只读的。当我在GUI中执行它时,Eclipse只是默默地忽略库依赖项中的任何更改!

答案 4 :(得分:3)

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

答案 5 :(得分:2)

我有类似的问题,我的回答与CommonsWare略有不同。这是我的截图:

enter image description here

在我的构建中检查了库后,我的内容再次开始工作。

答案 6 :(得分:0)

我也有同样的问题,

i)添加gson lib作为参考文献库 ii)在java Build Path中检查它 http://i.stack.imgur.com/Gldhs.png