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

3

我将一个Eclipse项目移植到了Android Studio IDE,该项目使用了android-support-v4android-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

注意:我清理了项目后它起作用了,然后下一次运行时出现了同样的错误,所以每次运行都要清理。有人知道为什么会这样吗?
1个回答

0

首先,请参考答案以了解为什么会出现这种情况,并按照建议进行修复。

如果有人发现该答案无法应用于Android库项目,请使用以下代码片段进行修复

编译(project(':yourAndroidLibrary')){ exclude module: 'support-v13' }


如果你使用了以下代码:

compile project(':yourAndroidLibrary'){ exclude module: 'support-v13' }

你会遇到以下问题:

发现不支持的Gradle DSL方法:'exclude()'

区别在于"("")"括号的位置,应该写成:

compile(project(':yourAndroidLibrary')){ exclude module: 'support-v13' }


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接