Android Studio:多个dex文件定义Lcom / sun / activation / registries / LineTokenizer;

时间:2014-05-29 01:02:13

标签: android gradle android-studio

在尝试构建项目时收到此异常。寻找答案,但大多数情况似乎与我的不同。

其他解决方案包括清除临时文件或进行gradle清理。这确实暂时解决了问题,但在几次构建之后它又重新出现。此问题的另一种出现方式是项目是否包含库的多个副本。我搜索了我的项目,只有一个activation.jar实例,它位于我的libs目录中。大多数其他解决方案似乎涉及更改Eclipse中的构建路径,但我的问题发生在Android Studio 0.5.8上。我使用的是Java 1.7。

Gradle Console

  

意外的顶级异常:com.android.dex.DexException:   多个dex文件定义   LCOM /阳光/激活/注册/ LineTokenizer;             在com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)             在com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)             在com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533)             在com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)             在com.android.dx.merge.DexMerger.merge(DexMerger.java:188)             在com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)             在com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)             在com.android.dx.command.dexer.Main.run(Main.java:230)             在com.android.dx.command.dexer.Main.main(Main.java:199)             在com.android.dx.command.Main.main(Main.java:103)

libs目录中的库:

  • activation.jar
  • additionnal.jar
  • androidplot核-0.5.1.jar
  • annotations.jar
  • DatawindAdsSdk-2.0.jar
  • jpct_ae.jar
  • jsr305-1.3.9.jar
  • libGoogleAnalyticsV2.jar
  • mail.jar
  • twitter4j核-3.0.5.jar

依赖关系:注 - “:android-cropimage”在build.gradle中没有任何依赖关系

主要模块:

dependencies {
    //Library Projects
    compile project(':android-cropimage')
    compile project(':facebook')

    //Android SDK Libraries
    //This library requires "Google Play Services" and "Google Repository" to be downloaded via SDK Manager.
    compile 'com.google.android.gms:play-services:4.4.52'

    //Third Party
    compile fileTree(dir: 'libs', include: '*.jar')
    compile 'com.github.chrisbanes.actionbarpulltorefresh:extra-abs:+'
    compile 'com.jakewharton:butterknife:4.0.1'
    compile 'com.j256.ormlite:ormlite-core:4.46'
    compile 'com.j256.ormlite:ormlite-android:4.46'
    compile 'net.hockeyapp.android:HockeySDK:3.0.1'
    compile 'org.apache.httpcomponents:httpmime:4.2.5'
    compile 'com.viewpagerindicator:library:2.4.1@aar'
    compile 'com.squareup.picasso:picasso:2.2.0'
    compile 'com.mcxiaoke.volley:library:1.0.+'
    compile 'org.msgpack:msgpack:0.6.11'
}

Facebook模块:

dependencies {
    compile 'com.android.support:support-v4:19.1.0'
}

2 个答案:

答案 0 :(得分:3)

原来这是由于版本0.10.2(https://groups.google.com/forum/#!topic/adt-dev/6KbhReCE_fo)上的Android Gradle插件的增量dex选项出错。从我的build.gradle文件中删除以下内容解决了这个问题:

android {
    dexOptions {
        incremental true
    }
}

答案 1 :(得分:0)

正如@Marepork所说,有一个没有修复的gradle错误

如果您仍想使用增量构建,您可以始终使用构建变体和fordebug使用multidex并发布proguard