android studio开启multiDexEnabled后依然出现超出方法数的问题

解决方法<br>

1.代码精简<br>

删除无用代码,删除model里的get和set方法,减少外部库的应用门等等<br>

2.借助开源解决方案(DexKnife开源项目)<br>

DexKnife

1.在项目里的build.gradle文件里配置<br>
classpath 'com.ceabie.dextools:gradle-dexknife-plugin:1.5.9'
2、在运行模块里的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, 全局过滤会合并

转载于:https://my.oschina.net/u/435726/blog/1518565

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值