Android 工程方法数量65536 DexIndexOverflowException

时间:2021-02-22 16:53:40
当程序报错: Error:Execution failed for task ':ttt:transformClassesWithDexForDebug'.
com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
当出现这个错误时说明你本身自己的工程代码中含有的太多的方法,或者你的工程lib文件夹下引用的第三方插件jar包有太多的方法,这两者的方法加起来已经超过了65536这个数目。而谷歌规定单个dex文件中的方法不能超过65536的限制。

解决办法:谷歌官方推荐使用MultiDexApplication,具体步骤如下

Gradle 配置:

defaultConfig {   
...
multiDexEnabled true
}

//google MultiDexApplication 65536分包
compile 'com.android.support:multidex:1.0.0'

Application 类重写如下方法:
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}


原文作者:姚瑶大坏蛋
原文链接:http://www.jianshu.com/p/f046b3f49e49
原文來源:简书
原文著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。