Android Studio dexForClass

Error:Execution failed for task ‘:app:transformClassesWithDexForDebug’.

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define

某一個class(項目中重複引用的依賴)

在虛擬機上面正常運行,但是build apk 或者 真機運行就會造成上面這個錯誤
這錯誤是幹嘛的呢。

重複引用

現如今,android項目會越做越大,最後導致整個項目引用的包有重複的,最常見的可能就是support-v4的包
運行時出現上文的錯誤
主要是dex 這玩意
在項目配置文件中添加

defaultConfig {
……………………
multiDexEnabled true //這個還可以用於下面這情況
//Cannot fit requested classes in a single dex file. Try supplying a main-dex list.
//methods: 67363 > 65536
//Message{kind=ERROR, text=Cannot fit requested classes in a single dex file. Try //supplying a main-dex list.
}

就是將重複的引用包合併或者忽略
再次運行後報如下錯誤

Error:Execution failed for
task:’app:transformClassesWithJarMergingForDebug’.

com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: okhttp3/Address.class

看出來了,merge 合併,就是將重複類在編譯器中只擁有一個
接着在添加

android{
        configurations {
         all*.exclude group: 'com.aaa.xxxx', module: 'xxxx'
     }
}

其中
group爲依賴地址
module爲依賴包
將報錯信息重複的地址以及包放上去就ok了
FINE

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章