【发布时间】:2012-11-09 23:12:14
【问题描述】:
昨天我将 adt 更新到 v 21。今天,经过小幅更正后,我重建并启动了项目,但它崩溃了。在我的项目中,我使用了一些库项目。 ActionbarSherlock 就是其中之一。 Logcat 说“java.lang.NoClassDefFoundError: com.actionbarsherlock.R$styleable at...”
【问题讨论】:
昨天我将 adt 更新到 v 21。今天,经过小幅更正后,我重建并启动了项目,但它崩溃了。在我的项目中,我使用了一些库项目。 ActionbarSherlock 就是其中之一。 Logcat 说“java.lang.NoClassDefFoundError: com.actionbarsherlock.R$styleable at...”
【问题讨论】:
但我的解决方案是不同的。
我们需要确保库项目中没有具有相同包名的项目。
如果 2 个库项目具有相同的包名,则构建过程不会为其中任何一个生成 R。更改其中一个的包名称(因此两个库具有不同的包名称)解决了这个问题。
【讨论】:
在查看 logcat 并挠头几分钟后,我注意到,库项目的 R 类尚未在我的项目 /gen 文件夹中生成。为什么?这对我来说是个秘密。
我刚刚重建了库项目,而不是我的 - 它解决了问题。
来自 adt 发行说明:
更新了构建以仅使用库所需的 ID 为库项目生成 R 资源类,从而降低字段和方法达到 DEX 文件限制的风险。
似乎只是忽略了在 v21 之前的版本下构建的库项目
【讨论】: