Android Studio打包错误(Cannot merge new index 67578 into a non-jumbo instruction!)

今天在项目中加了个库然后就报了如下错误

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
    }
    ......
}
点赞