多个 dex 文件定义了 Landroid/support/v13/app/FragmentCompatICS



我将一个Eclipse项目移植到Android Studio IDE,该项目使用的是android-support-v4,android-support-v13appcompat_v7库,一切都很好,但是当我使用Android Studio时,每次尝试运行该项目时都会收到以下错误:

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Landroid/support/v13/app/FragmentCompatICS;
    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:302)
    at com.android.dx.command.dexer.Main.run(Main.java:245)
    at com.android.dx.command.dexer.Main.main(Main.java:214)
    at com.android.dx.command.Main.main(Main.java:106)
Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-8-oracle/bin/java'' finished with non-zero exit value 2
Information:BUILD FAILED

注意:一旦我清理了项目,它就可以工作,然后下次运行时再次发生同样的错误,所以我每次运行时都必须清理。

有人知道为什么这种情况不断发生吗?

首先,请参考这个答案来弄清楚它发生的原因并按照它的建议进行修复。

如果有人发现该答案无法应用于 android 库项目,这里是要修复的代码片段

compile (project(':yourAndroidLibrary')){ 排除模块:"支持-v13" }


你会发现问题

找到不受支持的 Gradle DSL 方法:"exclude()"

如果您使用编译项目(':yourAndroidLibrary'){ 排除模块:"支持-v13" }

区别在于"项目"之前的手镯"("")"。

最新更新