Error:Execution failed for task ‘:app:transformDexArchiveWithExternalLibsDexMergerForDebug’.
java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
我再貼一張圖!
被這個錯誤搞瘋了,搞了兩天!…必須寫一篇文章祭奠一下
虐心之旅開始
網上各種方式
一 在app 的build.gradle下面配置
defaultConfig {
multiDexEnabled true
}
同時需要配置
dependencies{
implementation ‘com.android.support:multidex:1.0.1’
}
不過這個方式是在代碼編譯成.dex超過65535長度限制的時候使用的,這裏行不通
二.是通過Goovy語音強制解決compile衝突問題
先打印出來依賴衝突的版本,然後再強制指定需要的版本
configurations.all {
resolutionStrategy {
force 'com.android.support:multidex:1.0.3'
force 'com.android.support:support-annotations:26.1.0'
force 'com.android.support:support-v4:26.1.0'
}
}
configurations.all {//打印依賴衝突版本
resolutionStrategy {
failOnVersionConflict()
}
}
三.翻牆找,老外遇到這個問題的人也不少
https://stackoverflow.com/questions/47079113/android-studio-3-0-execution-failed-for-task-unable-to-merge-dex#
以上方式,皆卒
最後…
emm…大招來了
1.在Gradle Console中 查看具體問題
2.配置打印gradle具體錯誤 如下圖
3.點擊 Run with --info(上上張圖的藍色地方)
然後會獲取具體錯誤信息
藍色部分就是具體信息…
4.然後運行 Terminal
輸入 gradle app:dependencies
獲取gradle 的依賴結構
這個有個小插曲,首先要進入你當前的項目,然後再輸入 gradle app:dependencies
如下圖所示
然後搜索之前Gradle報的錯誤信息的依賴庫
查找出在那個依賴產生的(如下圖)
最後,解決衝突
我寫的比較粗糙,可以看着一篇文章…不過這一篇缺少最後解決的方式
https://blog.csdn.net/u012214003/article/details/79632675
哎~難受啊,馬飛!