自从更新到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创建一个新项目。


当前回答

我来晚了,但加上我自己的经验,这样我以后可以再找:)

我在升级android sdk和eclipse插件后遇到了这个问题。没有升级不受惩罚!

我的问题与库项目有关,我的应用程序引用标准java项目和android库项目。我注意到Java Build Path设置在Source列表中包含了android库项目src和res文件夹(为每个在Source中提到bin的人投票,src和res也是一个问题)。

所以解决方案是:

在source列表和project列表的Java Build Path部分中删除所有引用的Android库源代码和项目引用 确保项目列表中列出了纯java依赖项,并在Order和Export选项卡中勾选,以便类包含在apk中 确保所有Android库依赖都列在项目属性的Android部分,在选中SDK版本下面的库部分。

从其他解决方案中拼凑出所有这些解决方案需要很长时间!唷!

其他回答

当我从adt 14升级到15时,我遇到了这个问题,为了让它工作,我最终只是删除了。eclipse文件夹(连同我的设置),并重新安装adt 15。

如果您有两个包含相同类名的jar,则会发生此错误,例如,我有两个库:jsr311-api-1.1.1.jar和jersey-core-1.17.1.jar,它们都包含类javax.ws.rs.ApplicationPath。我删除了jsr311-api-1.1.1.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文件夹中有两个不同版本的Cordova .jar文件,我删除了我甚至不使用的那个,它马上就工作了。 很奇怪,因为我之前没有注意到,之前还能用,然后突然就不用了……

这个问题发生在我身上,我在我的libs文件夹中有一个外部的。jar,名为gson-2.2.2.jar,但出于某种原因,其中有两个,gson-2.2.2.jar和gson-2.2.2.jar(1),我简单地删除了后者,我的项目再次建立良好。