前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解决“Cannot merge new index xxx into a non-jumbo instruction”的问题

解决“Cannot merge new index xxx into a non-jumbo instruction”的问题

作者头像
飞雪无情
发布2018-08-28 10:53:05
7070
发布2018-08-28 10:53:05
举报
文章被收录于专栏:飞雪无情的博客

今天遇到Jenkins报告收到一个比较奇怪的问题,从日志上看,提示如下:

代码语言:javascript
复制
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里配置:

代码语言:javascript
复制
android {
  dexOptions {
      jumboMode true
  }
}

如果是使用Eclipse+Ant构建的,在project.properties文件中增加如下配置:

代码语言:javascript
复制
dex.force.jumbo=true

就可以解决如上问题了。。

关于超过64K方法分Dex的解决办法可以参考官方的Configure Apps with Over 64K Methods这篇文章。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年9月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档