无法执行dex:多个dex文件定义Lorg / apache / maven / artifact / Artifact

时间:2013-03-24 10:30:11

标签: android robolectric android-annotations

我有一个使用Robolectric的Android项目。

我的应用程序相关类放在src/main/java中,并在src/test/java中测试相关的类。

我在pom.xml

中有这些测试依赖项
        <dependency>
            <groupId>org.robolectric</groupId>
            <artifactId>robolectric</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>

使用mvn package android:deploy从控制台构建和部署时,一切正常。 从Eclipse(Juno)启动项目时出现问题。

[2013-03-24 12:27:26 - Dex Loader] Unable to execute dex: Multiple dex files define Lorg/apache/maven/artifact/Artifact;
[2013-03-24 12:27:26 - my-app] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lorg/apache/maven/artifact/Artifact;

似乎只包含了Robolectric所需的依赖关系。我做错了什么?

3 个答案:

答案 0 :(得分:5)

在bin / dexedlibs文件夹中你有一个重复的jar

  1. 将其删除
  2. 清理preject
  3. 重试

答案 1 :(得分:2)

经过一番调查后,它似乎是一个与m2e-android相关的issue

答案 2 :(得分:1)

我曾经遇到同样的错误。最后,我发现它是由两次包含MoPubView的jar引起的:

- On the one hand, I imported the MoPubView project via Eclipse Menu function "File | Import";  

 -> then right click my project, select "Properties"; 
 -> In the left bar, select "android";
 -> In the "Library" section at the right, press [Add] button...  

- On the other hand, I copied the mopub-sdk.jar to the /libs folder of my project. 

我删除了后者。它解决了。