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


当前回答

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

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

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

你可以用

grep jar -r yourroffendingclassname YourApp | grep jar

其他回答

修改您的eclipse.ini文件并将最大内存参数设置为

-Xmx1024m

然后重新启动计算机。

这对我很管用。

在清理了之前版本工具遗留的一些目录和文件后,我的问题得到了解决。ADT Rev 14更改二进制文件的存储位置。我删除了整个bin目录,重新启动Eclipse,清理构建并强制重新构建。起初,这似乎奏效了,但在下一次运行后,问题又出现了。

我最终发现我的bin目录包含在项目构建路径中。我将bin从构建路径中排除,并重复上述步骤。这解决了我的问题。

以上的方法对我都不起作用,但我的方法就像一个咒语!

问题发生在用户使用eclipse构建依赖库时。为了得到解

步骤1:使用Delete workspace source永久地从Eclipse中删除库(如支持库项目v4或v13)

步骤2:重新导入库并将其包含到项目中

第三步:清洁和重建

完成了!

我也遇到了同样的问题,这很奇怪,因为只有在使用Eclipse时才会发生这种情况(但Ant没有问题)。 我是这样解决的:

右键单击项目名称 选择“构建路径”->配置构建路径 在Java Build Path中,转到Order和Export选项卡 取消选中.jar库

只是有时: 在Order和Export选项卡中,我没有任何jar库,所以我没有选中Android私有库项。现在我的项目正在运行。

当我在项目中添加ActionBarSherlock作为库时,我也遇到了类似的问题。Eclipse ADT v21.0预创建的dex文件据说是为了更快地构建项目。这些dex文件与lib文件夹中的一些jar文件相同。所以只保留一个,删除另一个。我删除了lib文件夹中的那些,因为dexed文件是自动生成的。