Android基础--报错信息65536

原创 2016年06月01日 23:05:34

eclipse中

在Android项目中引入过多的jar会出现错误:

Dex Loader] Unable to execute dex: method ID not in [0, 0xffff]: 65536
Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536

这个错误出现的原因是 Android设定的方法数是65536个(DEX 64K problem),超过这个方法数,导致dex无法生成,就无法生成APK.

限制原因:早期的Dalvik VM内部使用short类型变量来标识方法的id,就有了 最大方法数的限制65536。

解决方法一:

删除不用的方法,删除不使用的jar

项目维护时间长了,里面会出现不再使用的类和不再使用的方法,建议集中清理下,把不再使用的方法,不再使用的类都清除,这样的好处是代码也干净了,如果方法数超出的不是太多的话通过清理就可以让方法数减少到65536以下,一般来说jar里面的方法数最好,清除一两个无用的jar包就能大大的减少方法数。

解决方法二:分包

通过在defaultConfig中设置multiDexEnabled = true可以开启分包模式,分包之后的Dex就低于了限制数,保证了正常的打包。
但是很有可能会报出其他的错误:
java.lang.NoClassDefFoundError

下面在Android Studio开发中,针对gradle的设置

因为我们项目的 minSdkVersion为14,解决方案,不支持低版本的Android设备。

 defaultConfig {
        multiDexEnabled=true
    }

忽略方法数限制的检查

android.dexOptions {
    jumboMode = true

}

设置dexOptions的,不做方法数限制的检查,这样做的缺点是apk无法再低版本的设备上面安装,低版本会出现错误:

 INSTALL_FAILED_DEXOPT
dependencies {
compile 'com.android.support:multidex:1.0.0'
}

还要在Manifest.xml的application 标签中加入以下一句话:

<?xml version="1.0" encoding="utf-8"?>
package="com.example.android.multidex.myapplication">
...
android:name="android.support.multidex.MultiDexApplication">
...
版权声明:本文为博主原创文章,未经博主允许不得转载。

Eclipse中65536的解决办法

最近在做项目的时候,发现引入的第三方工程太多,无法打包成app文件了。如下 遇到这种问题怎么办呢???我们先看问题描述:方法数不在0-65536内,dalvik。。错误,不懂,还是先百度吧,好像...
  • Calvin_zhou
  • Calvin_zhou
  • 2016年01月21日 11:46
  • 7193

AndoridStudio解决项目65536方法超出限制的解决办法!

其实解决这个问题的方法挺简单的,但是因为对AndroidStudio的配置不是很了解弄了半天!唉! 我用的AndroidStudio的版本是2.2的,然后用的buildToolsVersion是21...
  • github_36962753
  • github_36962753
  • 2016年12月07日 20:30
  • 1298

过客--期货业协会这个傻逼网站报个名一直报不上提示“基础数据为空”

期货也协会这个傻逼网站一开始登录就不好登录 好不容易登录进去了报名填写完基础信息点击下一步就一直提示“基础数据为空”,回头检查了一下信息,都填写了呀,没啥问题呀 就是一直报下面这个错,而且报考批次也不...
  • jianglai3289
  • jianglai3289
  • 2016年08月30日 02:58
  • 15265

Eclipse超详细解决安卓Dex65536报错,分包方法

能搜索到这里的也不需要知道为什么会报Dex65536错误了,下面单刀直入直接上解决办法: 原理其实就是将不重要的jar包集中用ant打包成一个jar包,再用SDK自带工具dx.bat去将这个jar包编...
  • qq_35213388
  • qq_35213388
  • 2017年09月30日 15:45
  • 480

调用react-native-fs插件时,如果数据的接口是需要验证信息的,在android上运行报错

调用react-native-fs插件时,如果数据的接口是需要验证信息的,在android上运行报错,而在iOS上运行没问题。原因是因为接口是有验证信息的,而调用这个插件时没有传入,在iOS上会自动加...
  • xiaojun_zxj
  • xiaojun_zxj
  • 2017年06月19日 12:06
  • 232

Android.SuperNotCalledException报错异常信息的解决方案

总结前阵子同事遇到的问题Android.support.v4.app.SuperNotCalledException1.分析 报错信息:java.lang.RuntimeException: Unab...
  • yk377657321
  • yk377657321
  • 2016年06月05日 13:34
  • 1981

android解决65536问题的工具

  • 2015年12月22日 22:43
  • 3KB
  • 下载

配置文件的配置信息报错

  • 2014年04月24日 09:54
  • 307KB
  • 下载

oracle10g 报错信息汇总

  • 2010年11月13日 23:13
  • 2.45MB
  • 下载

报错信息汇总

  • 2013年04月18日 10:50
  • 53KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android基础--报错信息65536
举报原因:
原因补充:

(最多只允许输入30个字)