自从更新到ADT 14,我不能再构建我的项目。它在更新之前构建得很好。

错误:

[2011-10-23 16:23:29 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;
[2011-10-23 16:23:29 - myProj] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;

类似的问题也有报道,我尝试了其中的建议,包括

重新启动Eclipse。 清理项目和重建-禁用“项目->自动生成”选项,然后“清理”和“生成”项目,然后尝试运行。将“自动构建”选项重置为开启 重新安装Android开发者工具 重新安装Eclipse(更新到最新版本3.7.1) 创建一个从文件系统导入的新项目 从subversion创建一个新项目。


当前回答

我在GooglePlayService库项目google-play-services.jar中得到了同样的错误消息。

我们使用maven,因此我必须在本地maven存储库中添加库。(mvn install:install-file -Dfile=xxx)

现在这个库在“Java Build Path”中出现了两次——> Libraries。

在Android依赖项中 在Maven依赖项中。

为了解决这个问题,我需要从google-play-services_lib/libs目录中删除这个库(它是自动使用的jar)

其他回答

正如其他人所提到的,当您的构建路径中有同一个类的多个副本时,就会发生这种情况——在类路径中包含bin/是保证这个问题的一种方法。

对我来说,这发生在我将android-support-v4.jar添加到我的libs/文件夹时,eclipse不知怎么地在bin/classes/android-support-v4.jar中添加了第二个副本。

删除bin/classes中的额外副本解决了问题-不确定Eclipse为什么要在那里复制。

你可以用

grep jar -r yourroffendingclassname YourApp | grep jar

发现了另一个发生此问题的场景: 问题是libs文件夹在项目首选项中被用作Source,因此导出了两次。 解决方法:右键单击libs文件夹->构建路径->从构建路径删除

当我导入一个.jar文件(实际上它是httpmime-4.3.jar)并试图使用它时,出现了这个错误。对我来说,解决方案很简单:我从libs文件夹中删除了.jar文件,并从Order and Export中删除了它。再次运行项目,它工作了,所以我再次添加了.jar文件,最终它是好的。

对我来说,这个问题只存在,只要有Android库项目涉及到我的项目。所以当我删除所有的库,并按照你说的那样,我可以再次运行我的应用程序。 如果涉及到库,即使是删除箱子的技巧也行不通。

我不明白为什么这个错误今天第一次出现,因为我现在使用ADT 14好几天了。不过还有其他虫子让我很开心。

确保在Java Build Path下的Order and Export选项卡中未选中“android-support-v4.jar”

请遵循以下步骤:

项目属性 Java Build路径 订购及出口 取消“android-support-v4.jar”