android studio開啓multiDexEnabled後依然出現超出方法數的問題

解決方法<br>

1.代碼精簡<br>

刪除無用代碼,刪除model裏的get和set方法,減小外部庫的應用門等等<br>android

2.藉助開源解決方案(DexKnife開源項目)<br>

DexKnifegit

1.在項目裏的build.gradle文件裏配置<br>
classpath 'com.ceabie.dextools:gradle-dexknife-plugin:1.5.9'
二、在運行模塊裏的build.gradle文件裏配置
apply plugin: 'com.android.application'
apply plugin: 'com.ceabie.dexnkife'
3.運行模塊根目錄增長dexknife.txt文件
# 全局過濾, 若是沒設置 -filter-suggest 並不會應用到 建議的maindexlist.
# 若是你想要某個包路徑在maindex中,則使用 -keep 選項,即便他已經在分包的路徑中.
-keep android.support.v4.view.**

# 這條配置能夠指定這個包下類在第二dex中.
android.support.v?.**

# 使用.class後綴,表明單個類.
-keep android.support.v7.app.AppCompatDialogFragment.class

# 不包含Android gradle 插件自動生成的miandex列表.
-donot-use-suggest
-split **

# 將 全局過濾配置應用到 建議的maindexlist中, 但 -donot-use-suggest 要關閉.
#-filter-suggest

# 不進行dex分包, 直到 dex 的id數量超過 65536.    
-auto-maindex

# dex 擴展參數, 例如 --set-max-idx-number=50000
# 若是出現 DexException: Too many classes in --main-dex-list, main dex capacity exceeded,則    須要調大數值
-dex-param --set-max-idx-number=65536

# 顯示miandex的日誌.
-log-mainlist

# 若是你只想過濾 建議的maindexlist, 使用 -suggest-split 和 -suggest-keep.
# 若是同時啓用 -filter-suggest, 全局過濾會合並
相關文章
相關標籤/搜索