无法执行dex:多个dex文件定义Lcom / actionbarsherlock / R $ attr

时间:2013-02-07 02:35:40

标签: android eclipse actionbarsherlock dex

我为我的应用创建了一个库项目。当我尝试将库添加到项目时,尝试运行时会出现以下错误:

[2013-02-07 04:51:26 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/actionbarsherlock/R$attr;
[2013-02-07 04:51:26 - testfromlibrary] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/actionbarsherlock/R$attr;

我已将HoloEverywhere库添加到我的库中,而我已将ActionBarSherlock库添加到HoloEverywhere。我在Windows 7上使用Eclipse。

即使我将SDK更新到最新版本,重新启动Eclipse并清理了各种项目,但错误仍然存​​在。

有没有人知道如何解决这个错误?我的bin dir未包含在属性下的构建路径中,我完全尝试了deleting the bin folder

谢谢!

12 个答案:

答案 0 :(得分:18)

我发现如果我进入房产 - > Java构建路径 - >订购和导出并删除了Android私有库,然后我的项目建立得很好。那里有另一个支持v4 jar,与动作栏sherlocks支持v4库冲突

答案 1 :(得分:8)

当我与actionbarsherlock一起创建一个库时,会发生这个问题。在这种情况下,eclipse在我的库和使用它的项目中从sherlock创建R.

解决方案是在库bin文件夹中仅删除包含R类的文件夹actionbarsherlock。这个inst不再创建,只存在于您的项目应用程序中。

答案 2 :(得分:5)

我将错误原因指向/ bin / classes。如果我在运行应用程序之前删除了/ classes目录,那么应用程序将编译并运行。当然,当我尝试实际导出应用程序时,/ classes目录会返回并伴随错误。

我的问题的解决方案是安装最新版本的Eclipse。当我通过Eclipse的最新安装导出或运行应用程序时,/ classes文件夹现在不会出现。

答案 3 :(得分:3)

对我来说问题是重复的类文件。我同时拥有包本身和包的jar sdk(在libs文件夹中)。

答案 4 :(得分:3)

在我将常规的android项目更改为库项目以便将其用于免费/付费项目拆分设置后,发生了这种情况。

运行任一个Free / Paid项目都会导致OP错误。

当基础项目是普通项目而不是库项目时,问题是遗留在编译之类的东西。 只需清理工作区并重建所有项目。将删除旧的编译垃圾,并将所有内容编译到正确的库中。 尝试重新运行产生错误的项目,现在一切都应该没问题。

答案 5 :(得分:2)

确保两个项目(库和应用程序)没有相同的包名(在AndroidManifest中)

答案 6 :(得分:1)

我今天遇到了同样的问题。我删除了/ bin中的.apk文件,似乎修复了它。

答案 7 :(得分:0)

从Build Path中删除所有库并导入您要实现的库项目..这很好用..

答案 8 :(得分:0)

您可以使用Tattletale

它可以帮助您识别JAR文件中的重复类。

希望它有所帮助。

答案 9 :(得分:0)

对于Android Studio - 我删除了重复的.jar导入并解析了它。

详细说明: 我有一个应用程序,它有一个基本/公共文件夹,然后是两个从中继承的文件夹 - 应用程序的免费和付费版本。当我的/ common文件夹和/ free文件夹在项目结构中包含相同的crashlytics jar文件时,会导致该问题。

答案 10 :(得分:0)

对我来说,解决方案是删除" bin"中的每个JAR文件。文件夹/目录。

答案 11 :(得分:0)

如果您的项目引用了库项目 - 请检查库项目是否具有您在项目中使用的库,但不同版本。在任何地方使用相同的版本,一切都应该没问题!