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, 全局过滤会合并
相关文章
相关标签/搜索