Android 工程方法數量65536 DexIndexOverflowException

當程序報錯:
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
原文來源:簡書
原文著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章