解决“com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536”问题(l转)

同时在工程中引入了多个第三方jar包,导致调用的方法数超过了android设定的65536个(DEX 64K problem),进而导致dex无法生成,也就无法生成APK文件。

解决办法如下:

1、谷歌官方已经给出了相关的文档,参照网上搜索的资料,首先,我的问题是:

Error:Execution failed for task ‘:duchazhushou:dexRelease‘.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    C:\Users\jeff\AppData\Local\Android\sdk\android-sdk\build-tools\21.1.1\dx.bat --dex --output D:\dev\android\Duchazhushou_TDT\duchazhushou\build\intermediates\dex\release --input-list=D:\dev\android\Duchazhushou_TDT\duchazhushou\build\intermediates\tmp\dex\release\inputList.txt
Error Code:
    2
Output:
    UNEXPECTED TOP-LEVEL EXCEPTION:
    com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
        at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:502)
        at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:277)
        at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:491)
        at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:168)
        at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
        at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
        at com.android.dx.command.dexer.Main.runMonoDex(Main.java:302)
        at com.android.dx.command.dexer.Main.run(Main.java:245)
        at com.android.dx.command.dexer.Main.main(Main.java:214)
        at com.android.dx.command.Main.main(Main.java:106)

2、在项目的build.gradle文件的dependencies 节中添加分包设置:

dependencies {
...
   compile ‘com.android.support:multidex:‘
   ...
}

3、通过在defaultConfig节中设置multiDexEnabled标签为true,开启multi-dexing支持.

defaultConfig {
   ...
multiDexEnabled true
...
}

4、分三种情况,由于我并未创建自己的Application.class,直接在AndroidManifest.xml文件的Application声明中添加;

android:name="android.support.multidex.MultiDexApplication"

5、重新build,生成签名APK,安装使用正常。

以上步骤均参考下面链接操作,关于第4步的另外两种情况,在下面链接中均有详细说明:

http://stackoverflow.com/questions/27377080/after-update-of-as-to-1-0-getting-method-id-not-in-0-0xffff-65536-error-i

时间: 2024-10-04 12:35:47

解决“com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536”问题(l转)的相关文章

Android学习笔记----解决“com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536”问题

同时在工程中引入了多个第三方jar包,导致调用的方法数超过了android设定的65536个(DEX 64K problem),进而导致dex无法生成,也就无法生成APK文件. 解决办法如下: 1.谷歌官方已经给出了相关的文档,参照网上搜索的资料,首先,我的问题是: Error:Execution failed for task ':duchazhushou:dexRelease'. > com.android.ide.common.internal.LoggedErrorException:

解决android studio上“com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65935”问题

我是在更换应用的一个jar包时发生的这个错误,网上查到说是因为同时在工程中引入了多个第三方jar包,导致调用的方法数超过了android设定的65935个(DEX 64K problem),进而导致dex无法生成,也就无法生成APK文件. 解决办法如下: 1.在项目的build.gradle文件的dependencies 节中添加分包设置: dependencies { ... compile 'com.android.support:multidex:' ... } 2.通过在defaultC

Android Unable to execute dex: method ID not in [0, 0xffff]: 65536 问题解决方法

开始一个新项目的时候,Build工程的时候一直报这个错误: 控制台报错误:Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536 看别人有说在project.properties里面加上dex.force.jumbo=true,尝试了一下,不成功, 后来遍访名山高人,查各种资料,各种尝试,终于成功解决了 原因可能是因为adt升级等原因,在Java_Buildpat

android Unable toexecute dex: method ID not in [0, 0xffff]: 65536问题

尊重原创 :http://blog.csdn.net/yuanzeyao/article/details/41809423 作为一名Android开发者,相信你对Android方法数不能超过65K的限制应该有所耳闻,随着应用程序功能不断的丰富,总有一天你会遇到一个异常: Conversion to Dalvik format failed:Unable toexecute dex: method ID not in [0, 0xffff]: 65536 可能有些同学会说,解决这个问题很简单,我们

Unable to execute dex: method ID not in [0, 0xffff]: 65536 问题解决方法

开始一个新项目的时候,Build工程的时候一直报这个错误: 控制台报错误:Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536 看别人有说在project.properties里面加上dex.force.jumbo=true,尝试了一下,不成功, 后来遍访名山高人,查各种资料,各种尝试,终于成功解决了 原因可能是因为adt升级等原因,在Java_Buildpat

com.android.dex.DexIndexOverflowException merging dependencies or error that java.exe finished with non-zero exit value 2

这个问题困扰我好一两天了,现在解决了这个麻烦的问题,我觉得有必要以博客的形式描述一下我这段心酸的解决经历,在网上查了好多关于这方面的资料,大多都是说编译的jar包,或者libs重复之类的(我用的是AS),但是我仔细看了好几遍我的builde.gradle文件,没有这个问题的存在,所以我就很纳闷,几番折腾,我觉得还是从错误log中去找bug的根源,发现 java.exe finished with non-zero exit value 2还是由com.android.dex.DexIndexOv

美团Android DEX自动拆包及动态加载简介

最近也遇到了方法数超过65K的问题,最终通过MultiDex的方法解决了,感觉还比较简单,就是改了gradle文件,不知道美团为什么弄这么复杂的方案 原文http://tech.meituan.com/mt-android-auto-split-dex.html 概述 作为一个android开发者,在开发应用时,随着业务规模发展到一定程度,不断地加入新功能.添加新的类库,代码在急剧的膨胀,相应的apk包的大小也急剧增加, 那么终有一天,你会不幸遇到这个错误: 生成的apk在android 2.3

Android dex分包方案

当一个app的功能越来越复杂,代码量越来越多,也许有一天便会突然遇到下列现象: 1. 生成的apk在2.3以前的机器无法安装,提示INSTALL_FAILED_DEXOPT 2. 方法数量过多,编译时出错,提示: Conversion to Dalvik format failed:Unable to execute dex: method ID not in [0, 0xffff]: 65536 出现这种问题的原因是: 1. Android2.3及以前版本用来执行dexopt(用于优化dex文

[转]Android dex分包方案

转载自:https://m.oschina.net/blog/308583 当一个app的功能越来越复杂,代码量越来越多,也许有一天便会突然遇到下列现象: 1. 生成的apk在2.3以前的机器无法安装,提示INSTALL_FAILED_DEXOPT 2. 方法数量过多,编译时出错,提示: Conversion to Dalvik format failed:Unable to execute dex: method ID not in [0, 0xffff]: 65536 出现这种问题的原因是: