Unity|解决“Cannot merge new index xxx into a non-jumbo instruction”的问题
https://developer.android.com/studio/build/multidex
配置方法数超过 64K 的应用
http://www.flysnow.org/2016/09/18/android-dex-jumbo-mode.html
解决“Cannot merge new index xxx into a non-jumbo instruction”的问题 今天遇到Jenkins报告收到一个比较奇怪的问题,从日志上看,提示如下:
【Unity|解决“Cannot merge new index xxx into a non-jumbo instruction”的问题】Cannot merge new index xxx into a non-jumbo instruction |
xxx一般是一个整数,比如66345等,从这个提示看,和Dex方法超过64K的限制一样,应该是同一个问题。不过App已经解决了这个64K方法的问题,怎么还会提示呢。
从提上看,是一个non-jumbo,让我想到了Dex的jumbo模式,这是一个用来配置制定该Dex是不是一个巨大的Dex的。报错的日志里显示是一个模块,从这可以推断出基本的问题:该模块需要生成一个Dex放进AAR包里给App使用,现在这个Dex生成不了啦,提示太大,这个是根本原因,所以只要解决了这个就可以了。
那么以前为什么不会出现这个问题呢,我们从git提交的历史来看,发现昨天的需求新增了一个第三方包,导致该模块的方法变多,超过了限制,所以今天就有了这个错误的提示。。
既然知道了原因,那么就很好解决了。
使用Gradle构建的,在模块的build.gradle里配置:
android { dexOptions { jumboMode true } } |
dex.force.jumbo=true |
关于超过64K方法分Dex的解决办法可以参考官方的Configure Apps with Over 64K Methods这篇文章。
推荐阅读
- parallels|parallels desktop 解决网络初始化失败问题
- 野营记-第五章|野营记-第五章 讨伐梦魇兽
- 艾略特的交易法则“遵循自然规律”
- 闲杂“细雨”
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- “成长”读书社群招募
- 上班后阅读开始变成一件奢侈的事
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- “精神病患者”的角度问题
- 说的真好