解决“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: 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-08-03 19:09:32

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

项目报Unable to execute dex: method ID not in [0, 0xffff]: 65536 后。。。。

问题描述 百度谷歌解决是 http://developer.android.com/t ... about  用multiDexEnabled true 但我加入后提示 解决方案 今天没人吗????解决方案二:项目开始的报错详细,麻烦您截个图解决方案三:看看这个http://blog.csdn.net/liu116431 ... 23871

android4.4系统解决“ERRORcouldn't find native method”方法

android4.4系统解决"ERRORcouldn't find native method"方法             今天笔者在移植一个tv模块从android4.2到android4.4系统的设备上,同样的代码,同样的方法,就是运行不起来.大概方法就是上层写一个apk,调用一个静态的java库,java库加载调用JNI的库文件,这一套代码在4.2上都是好好的,正常能跑,移到4.4上编译也都没有问题,运行会出下面的问题: /***************************

android 数据库 自增 id的问题

问题描述 android 数据库 自增 id的问题 Android sqlite数据库,一个表有一个自增id(主键),插入数据的时候没有手动指定(我觉得id应该会自动赋值),查询的时候id都是0,这是为什么,我用sqlite studio打开db文件,发现id是有值的,而且是从1开始自动增长的. 解决方案 关于数据库自增ID数据写入问题的解决Android sqlite数据删除解决自增id问题android 中应用SQLite 常用自增ID,ID归零方法 解决方案二: 不一定id 都是自增长的,

android用@Bind(R.id.xxx)Activity崩溃

问题描述 android用@Bind(R.id.xxx)Activity崩溃 这是调用,bind没问题的 另一个activity用这样的方法没有问题 error信息 28行是LinearLayout那行 和布局组件没关系 把其他的组件移到这行就出错 不知道为什么... 解决方案 你看日志截图的第一行,说你试图把一个RelativeLayout赋值给一个TextView,所以,错误的原因应该是你为这个TextView绑定的R.id.xx写错了. 如果没有写错,请clean一下工程试试.

碎片化-求大神解决,android碎片,在手机模拟器可以运行,在平板报错了

问题描述 求大神解决,android碎片,在手机模拟器可以运行,在平板报错了 说是null指针,我都定义layout-large的xml,不是很懂,怎样查找求大神... 解决方案 http://blog.sina.com.cn/s/blog_6400e5c50101l9xc.html 解决方案二: activity启动失败 在手机上能运行吗?

android dex动态加载jar包的问题

问题描述 android dex动态加载jar包的问题 有个需求就是在工程中动态的加载一个jar包中的接口 然后接口中开启一个activity 但是在项目中没有这个activity 只是在manifest中配置了一下 请问这个要怎么开启 解决方案 android动态加载jar包android动态加载jar包Android如何动态加载jar包

java-大神,求解决,Android studio 的问题

问题描述 大神,求解决,Android studio 的问题 我之前用eclipse adt 做好的项目拿Android studio打开然后又用adt打开(未修改)报错,怎么办? 解决方案 肯定编译器自己修改了,执行一下编译,清理工程,试试 解决方案二: 把报错内容截个图过来看一下 解决方案三: HL大神教你如何解决 a+b 问题解决Android Studio的Terminal窗口不能输入的问题[android studio]解决模拟器无法打开问题 解决方案四: clean之后再试试

求助大神解决关于android全景图--PanoramaGL库问题

问题描述 求助大神解决关于android全景图--PanoramaGL库问题 PanoramaGL是为android提供了加载全景图片的功能,but官方的demo只提供最基本的显示示例,因项目需要,需要在全景图上面添加热区(一种方式,把其他图片合成在全景图上,并且固定位置,类似百度地图的热区),创建一个热区(目前只能用Bitmap对象创建,因为需求,我实现的是,自定义一个xml布局文件,然后转换成bitmap对象),热区创建好后,合成到全景图上面,目前遇到的技术问题是:合成上去的自定义xml的布

OSC 第 84 期高手问答 — Android Dex 注入技术

OSCHINA 本期高手问答(7月29日- 8月4日)我们请来了 @jiangsai (江赛)为大家解答关于 Android Dex 注入技术 方面的问题. 江赛,@jiangsai ,听云移动研发总监,拥有10多年研发经验,早期主要从事网络设备协议栈开发,对 Linux Kernel.TCP/IP 协议栈等有一定的研究,从 2010 年开始从事移动设备及相关应用开发,从 Android 系统移植开始到 App 开发,对 Android build system.framework.App 开发