Android方法數methods超過65536
阿新 • • 發佈:2018-12-12
當Android App中的方法數超過65535時,如果往下相容到低版本裝置時,就會報編譯錯誤:
-
Cannot fit requested classes in a single dex file. Try supplying a main-dex list.
-
# methods: 86204 > 65536
-
Message{kind=ERROR, text=Cannot fit requested classes in a single dex file. Try supplying a main-dex list.
-
# methods: 86204 > 65536, sources=[Unknown source file], tool name=Optional.of(D8)}
原因是Android系統定義總方法數是一個short int,short int 最大值為65536。解決這個問題的方案是:
在Android的模組gradle檔案的defaultConfig預設配置裡面增加:
multiDexEnabled true
同時在dependencies裡面增加:
implementation 'com.android.support:multidex:1.0.3'
另外需要把AndroidMainfest.xml裡面新增自定義的App繼承自MultiDexApplication。