今天在项目中加了个库然后就报了如下错误
Error:Execution failed for task ':app:transformDexWithDexForRelease'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: Cannot merge new index 67578 into a non-jumbo instruction!
原因
最新的ADT和SDK Tool在将jar转化成dex的时候,可能会合并类的代码,这将导致巨大的类;类中的每一个方法都分配有一个id,字节码中以id标识和调用方法;早期的Dalvik VM内部使用short类型变量来标识方法的id,最大值限制在65535。当方法数超过65535,则会报该错误。
解决方法
在build.gradle中dexOptions增加jumboMode true
android {
....
dexOptions{
jumboMode true
}
......
}