1. 程式人生 > >Android方法數methods超過65536

Android方法數methods超過65536

當Android App中的方法數超過65535時,如果往下相容到低版本裝置時,就會報編譯錯誤:

  1. Cannot fit requested classes in a single dex file. Try supplying a main-dex list.

  2. # methods: 86204 > 65536

  3. Message{kind=ERROR, text=Cannot fit requested classes in a single dex file. Try supplying a main-dex list.

  4. # 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。