无法执行dex:多个dex文件定义

Tra*_*ang 125 java android

我知道这个问题曾经在这里问过几次.但我还没有看到任何可能的解决方案.在我将项目"作为Android应用程序运行"之前,如果我不清理它,我收到以下错误,并且必须重新启动Eclipse ...并再次清理.

Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define
     Lcom/jstun/core/attribute/MessageAttributeInterface;
Run Code Online (Sandbox Code Playgroud)

com.jstun.core ...是我的src文件夹的一部分,当然我无法删除它.即使我删除该包,另一个包将显示为错误,如:

Unable to execute dex: Multiple dex files define
     Landroid/support/v4/app/ActivityCompatHoneycomb;
Run Code Online (Sandbox Code Playgroud)

自从更新到ADT 15后我看到了这个错误,我在Ubuntu上使用Eclipse Galileo你有什么想法吗?谢谢你的回复!

ter*_*rry 136

这是构建路径问题.

  • 确保您的bin文件夹未包含在构建路径中.

  • 右键单击您的项目 - >转到属性 - >构建路径.

  • 确保Honeycomb库位于您的libs/文件夹中,而不在源文件夹中.

  • libs/在构建路径中单独包含库.

    顺便说一下,您可能需要引入android-support-v4库以获得Ice Cream Sandwich支持而不是Honeycomb支持库.

  • 如果您的构建路径中包含多个版本的库,则也会发生此问题.从`libs`路径中删除未使用的库,清理并保存项目,重新启动Eclipse并重新编译它再次为我工作. (50认同)
  • 问题的根本原因是其中一个库使用nineoldandroid库作为存储在./libs目录中的jar,而另一个项目使用nineoldandroid引用它 (2认同)
  • IntelliJ 13.1.4>没有属性或BuildPath这样的东西...... (2认同)

M.S*_*eer 58

我今天遇到了类似的错误,原因是支持库被我的应用程序项目使用但具有不同版本的两个库项目引用.

更多细节:我的应用程序取决于2个库项目

  • FaceBookSDK 3.0 - >引用android-support-v4
  • ActionBarSherlock - >引用android-support-v4但带有修改版本以支持地图.

为了解决这个问题,我不得不让FaceBookSDK库直接依赖ABS库而不是支持库.

  • 你们中的任何人都可以解释你们是怎么做到的吗? (10认同)
  • @samih在我提到的例子中,首先我从FaceBookSDK项目lib文件夹和构建路径中删除了android-support-v4 jar.然后我添加了对ActionBarSherlock库项目的引用. (3认同)

小智 47

好吧,对我来说,我删除了名为android support v4.jar的libs文件夹中的文件,这一切都解决了.祝好运 :)


Hen*_*que 33

我发生了同样的错误,每当我修复它时,它会在我重新启动Eclipse后返回.

首先,正如其他人所说,确保您的项目周围没有相同.jar文件的多个副本.

在我的例子中,我有一个使用ActionBarSherlock的主项目(以及其他库项目).对我有用的诀窍是进入ActionBarSherlock --> Properties --> Java Build path --> Order of Export和取消选择Android Private Libraries.然后进入Project -> Clean,现在你应该能够正确地构建项目.

现在,出于某种原因,每次重新启动Eclipse时,它都会自动启用该复选框,因此我必须再次重复此过程.

希望这能帮助一些迷失的灵魂在那里:)


Pra*_*ale 32

Go to Project/properties and Java Built Path and unchecked the Android Private Libraries


Hoa*_*ang 15

对我来说,只需转到项目属性>> Java构建路径>>订单和导出.取消选中所有外部库,如下图所示.它对我有用.希望这有帮助.

项目属性


小智 8

我在项目中也遇到过这个问题.AVD无法重新加载资产,lib,res等文件夹上下文.问题:Dex Loader]无法执行dex:多个dex文件定义Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl.

然后,我创建了新的项目和复制MainActivity.java,activity_main.xml,绘制背景.然后从package explore中删除旧项目,重新启动Eclipse和AVD.我的项目现在正常工作.... :)我希望这些步骤可以帮助你们一点点人.. !!


小智 8

我有同样的问题,我尝试的是:

  1. 项目清单
  2. 打开项目构建路径,
  3. 选择"库"选项卡,
  4. 删除除Android库之外的所有库
  5. 添加所有必需的JAR文件,
  6. 并做了!

它对我有用,谢谢.


Sam*_*h A 6

如果你们中的一些人面对这个问题与facebook-connent-plugin for phonegap

尝试删除bin/class/com/facebook/android目录中的文件! - >并重建


cha*_*qke 6

正如其他人所提到的,当您在构建路径中或设置中的其他位置具有同一类的多个副本时,会发生这种情况.

我已经将android-support-v4.jar添加到我的libs /文件夹中,并且不知何故eclipse在bin/classes/android-support-v4.jar中添加了第二个副本.

你可以测试一下

grep -r YourOffendingClassName YourApp | grep jar

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


Rya*_*n R 5

我出于另一个原因得到了这个错误.我错误地添加了v4和v13支持库.这对我来说不是必需的,因为我的minSdkVersion是15.

我通过包含v13支持库来修复它.另外,请确保在eclipse中检查导出的库构建路径中的库.我也将它移到了顶部.