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


当前回答

如果您有两个包含相同类名的jar,则会发生此错误,例如,我有两个库:jsr311-api-1.1.1.jar和jersey-core-1.17.1.jar,它们都包含类javax.ws.rs.ApplicationPath。我删除了jsr311-api-1.1.1.jar,它工作得很好。

其他回答

我在我的项目中通过删除一个库来解决这个问题:

原因:我在我的项目中包含了一个库项目,错误地没有从我的项目中删除之前的库,所以当我运行项目时,相同的库dex文件生成了两次,当我从项目的lib文件夹中删除相同的库时,错误消失了,构建成功创建,我希望其他人可能会面临同样的问题。

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

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

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

你可以用

grep jar -r yourroffendingclassname YourApp | grep jar

我相信找到解决方案了??

    [2013-04-28 23:56:09 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/coremedia/iso/AbstractBoxParser$1;

它说:“Lcom/coremedia/iso/AbstractBoxParser$1”,这恰好是我导入的导致问题的库的位置。查找com.codemedia.iso.AbstractBoxParser$1.class和.AbstractBoxParser.class....取出这个罐子,解包它,删除这两个文件,然后重新打包为.zip,添加到库,清理和工作!我不会再有冲突了!(也没有更新或额外下载)

删除bin文件夹还不够,我还删除了gen文件夹。然后在两次重建后,dex错误消息消失了。

我已经尝试了上面的大部分解决方案,在过去,其中一些是有效的。

但是这一次它们都不起作用,所以我删除了我的库项目的.jar文件。并重新构建库和应用程序项目。

这次成功了!