1. 程式人生 > >Try supplying a main-dex list. # methods: 66657 >66657 > 65536

Try supplying a main-dex list. # methods: 66657 >66657 > 65536

Cannot fit requested classes in a single dex file. Try supplying a main-dex list. # methods: 66657 > 65536

 

不能將請求的類裝入單個dex檔案中。試著提供一份主抄本清單。

#方法:66657 > 65536。

這個報錯是因為你的專案裡單個dex檔案的函式超過了65536個,隨著應用功能越來越複雜,程式碼量不斷地增大,引入的庫也越來越多,可能會報這個異常

Cannot fit requested classes in a single dex file. Try supplying a main-dex list. # methods: 66657 > 65536

這說明應用中引用的方法數超過了最大數65536個。產生這一問題的原因就是系統的65536限制,65536限制的主要原因是DVM Bytecode的限制,DVM指令集的方法呼叫指令invoke-kind索引為16bits,最多能引用 65535個方法。

可以嘗試著用一下方法解決這個問題

 

在你的app.gradle下寫如下方法

defaultConfig {
      multiDexEnabled true
    }
buildTypes {
        debug{
            lintOptions {
                checkReleaseBuilds false
                abortOnError false
            }
        }
        release {
            lintOptions {
                checkReleaseBuilds false
                abortOnError false
            }
        }
    }
implementation 'com.android.support:multidex:1.0.3'

#方法:66657 > 65536。

匯入上面的依賴

 

把你原來的繼承的Application類,換成MultiDexApplication

這樣應該就可以解決這個問題了,這種解決方式,我是在國外網站的一篇帖子上看到的,在此記錄一下