您的位置:首页 > 其它

Cannot merge new index 65553 into a non-jumbo instruction

2016-08-02 12:01 465 查看
今天用Android Stuidio打包的时候报了以下错误:

Error:Error converting bytecode to dex:
Cause: com.android.dex.DexIndexOverflowException: Cannot merge new index 65553 into a non-jumbo instruction!
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_31\bin\java.exe'' finished with non-zero exit value 2


原因

最新的ADT和SDK Tool在将jar转化成dex的时候,可能会合并类的代码,这将导致巨大的类;类中的每一个方法都分配有一个id,字节码中以id标识和调用方法;早期的Dalvik VM内部使用short类型变量来标识方法的id,最大值限制在65535。当方法数超过65535,则会报该错误。

解决方法

android studio的解决方案:

在build.gradle中dexOptions增加jumboMode true



elicpse的解决方案:

将dex.force.jumbo=true添加到project.properties文件中。

参考链接:http://blog.csdn.net/goldenfish1919/article/details/33729679
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐