参考:https://blog.csdn.net/zengruiyue/article/details/86627278
错误提示:
Error:Execution failed for task ':ZMU.B:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
原因:
根据相关文档提示,工程中有重复包被使用;
1、此时你需要去找一下所属工程中是否有重复引用包,有删除多余留一个就,重新编译就可以;
2、如果使用的引用包过多不好查找,那么有一个一劳永逸的方法:
提示:Caused by: com.android.tools.r8.utils.AbortException
at com.android.tools.r8.utils.Reporter.failIfPendingErrors(Reporter.java:77)
at com.android.tools.r8.utils.Reporter.fatalError(Reporter.java:58)
at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:67)
... 49 more
发现这是因为较新的java8语言特性导致的,可以通过在项目Module的build.gradle文件中添加以下代码解决:
解决:
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
你并且设置了multiDexEnabled true依赖了这个implementation 'com.android.support:multidex:1.0.3' ,那么出现
Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
这个问题请您检查buildTypes release、debug里是否设置了debuggable true,如果没有请加上问题就解决了。
buildTypes {
release {
debuggable true // *****
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
折腾了小一天,终于解决了。