解決“Cannot merge new index xxx into a non-jumbo instruction”的問題

xxx一般是一個整數(shù),比如66345等,從這個提示看,和Dex方法超過64K的限制一樣,應(yīng)該是同一個問題。不過App已經(jīng)解決了這個64K方法的問題,怎么還會提示呢。
從提上看,是一個non-jumbo,讓我想到了Dex的jumbo模式,這是一個用來配置制定該Dex是不是一個巨大的Dex的。報錯的日志里顯示是一個模塊,從這可以推斷出基本的問題:該模塊需要生成一個Dex放進AAR包里給App使用,現(xiàn)在這個Dex生成不了啦,提示太大,這個是根本原因,所以只要解決了這個就可以了。
那么以前為什么不會出現(xiàn)這個問題呢,我們從git提交的歷史來看,發(fā)現(xiàn)昨天的需求新增了一個第三方包,導(dǎo)致該模塊的方法變多,超過了限制,所以今天就有了這個錯誤的提示。。
既然知道了原因,那么就很好解決了。
使用Gradle構(gòu)建的,在模塊的build.gradle里配置:

android {
  dexOptions {
    jumboMode true
  }
}

如果是使用Eclipse+Ant構(gòu)建的,在project.properties文件中增加如下配置:

dex.force.jumbo=true

就可以解決如上問題了。。
關(guān)于超過64K方法分Dex的解決辦法可以參考官方的Configure Apps with Over 64K Methods這篇文章。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容