我将一个Eclipse项目移植到Android Studio IDE,该项目使用的是android-support-v4,android-support-v13和appcompat_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" }
区别在于"项目"之前的手镯"("和")"。