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

能搜索到这里的也不需要知道为什么会报Dex65536错误了,下面单刀直入直接上解决办法:

原理其实就是将不重要的jar包集中用ant打包成一个jar包,再用SDK自带工具dx.bat去将这个jar包编译成classes2.dex文件,在APP启动后动态加载这个分包dex

一.首先准备apache-ant-1.10.1.zip工具,后面会提供用到的工具(需要配置ANT的环境变量,自行百度搜索如何配置)

二.编写build.xml配置文件,将所需要合并的jar包写到里面


三.在项目libs包下Shift+右键进入命令行,执行命令:ant -buildfile D:\workspace\Fcbroker\Fcbroker\libs\build.xml


执行成功后会生成合并后的all.jar


四.然后到安卓SDK build-tool工具里使用dk.bat将合成的jar包编译成classes2.dex文件

执行命令:dx --dex --output=D:\workspace\Fcbroker\Fcbroker\libs\ classes2.dex D:\workspace\Fcbroker\Fcbroker\libs\all.jar


执行成功后会在libs文件夹下生成classes2.dex文件


五.将classes2.dex文件放置在项目src路径下


六.导入multidex库到项目,后面会提供下载


七.在项目的BaseApplication类里重写attachBaseContext方法,执行分包


八.在Java Build Path里将所合成的包的对勾取消掉,因为这些包已经在classes2.dex存在,无需再次打包进dex


九.运行程序,查看分包结果,先将apk文件右键解压出来,可以看到已被分成了两个dex


使用dex方法获取工具,可以看到现在主dex方法数明显减少了



下载地址: 点击打开链接

上次忘记发分包库了,这次补发:

链接: https://pan.baidu.com/s/1i5EM34L 密码: gnk4

最后要说一个重点,在APP启动时就马上要加载的jar包千万别进行合并分包,不然会报类找不到的错误,当然这个错误在高级点的手机上没有出现

猜你喜欢

转载自blog.csdn.net/qq_35213388/article/details/78143343