1. 程式人生 > >打包Multiple dex files define Landroid/support/v4問題解決

打包Multiple dex files define Landroid/support/v4問題解決

android studio 打包的時候報錯:

Error:Execution failed for task ':app:transformClassesWithDexForRelease'.

> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;

開始以為是不同包引入重複衝突了,各種exclude,如下,然並卵,還是一樣報錯

compile ('com.android.support:recyclerview-v7:+'){
        exclude module: 'support-v4'
    }

設定GRADLE_HOME環境變數和path,具體地址可檢視android studio -- file --setting 搜gradle


命令列執行gradle -v正常的話

到專案路徑執行gradle -q app:dependencies 或到app module下執行gradle -q dependencies檢視依賴樹

還是然並卵,甚至沒有看到v4的包路徑

最後發現其實是引用工程libs目錄下有一個android-support-v4.jar包,通過

compile fileTree(include: '*.jar', dir: 'libs')來引入v4包的,把這個jar包刪除,
改為gradle引入 compile 'com.android.support:support-v4:24.1.1'
問題解決,可能是gradle引入的gradle才能自動解決重複的包,而通過jar包引入的gradle處理不了