Error:Execution failed for task

2018-03-01  本文已影响205人  忧郁的小码仔

android studio项目突然跑不起来了,报:

Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
屏幕快照 2018-03-01 上午10.56.39.png

在 Gradle console里面按照提示点击Run with --stacktrace(如上图), 得到下面的错误提示

....
Caused by: com.android.dex.DexException: Multiple dex files define Landroid/support/design/widget/CoordinatorLayout$LayoutParams;
    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661)
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616)
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598)
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:198)
    at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61)
    ... 1 more

大体上知道是有重复的文件导致的了。
最终在项目的External Libraries中找到了两个重复的文件
一个是com.android.support:design-25.3.1下面的:
编译好的classes.jar里面

android.support.design.widget.CoordinatorLayout

另一个则是com.android.support:support-core-ui-27.1.0下面的:
编译好的classes.jar里面

android.support.design.widget.CoordinatorLayout

com.android.support:support-core-ui-27.1.0是因为gradle中的implementation 'com.android.support:appcompat-v7:27+'而导入的。测试时把它的版本号改为27.0.2再重新Sync Now一下就好了。
com.android.support:support-core-ui-27.0.2 下面就没有重复的android.support.design.widget.CoordinatorLayout了。

上一篇 下一篇

猜你喜欢

热点阅读