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這篇文章。