Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug

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了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容