eclipse 上解决方法数超过65536问题

前言

现在android 开发都是使用Android Studio进行开发的,对于这个问题特别简单,但是在eclipse上就有的捉急了。为什么要自讨苦吃呢,我也不想,总是有些老项目到现在还需要维护,多引用几个第三方,分分钟65536。废话不多说,讲讲解决思路,遇到这个问题吗,我首先google了一下,选择android-support-multidex.jar的方式,顺便吐槽一下,那些只知道乱复制的博主们,真操蛋,害人不浅啊。点开无数个链接都是一样的,而且还都只是半截。。。。。。

1、合并jar

因为可能jar包太多,需要合并,我这里是通过ant来合并的。具体可以参照该文档
Android利用ant将多个jar包合并成一个jar包
其中的build.xml文件中有个target name ,我们ant 的执行方法就是
ant makeSuperJar,makeSuperJar就是该name

2、将jar转化为dex

参照方法是Android将jar包转换为dex二进制文件

3、在eclipse中的操作

将生成的dex文件改名为classes2.dex ,将该文件 至于工程目录中的 src目录 下。
注意,再application里面就用到的jar包,必须放在主dex即lib目录下,不然会找不到。

从 lib目录 下剔除用来合并的 jar 。但是剔除后为了能编译通过我们得使用外部引用:通过 bulidPath 下的 add external archives 引用被我们合并的之前的 jar。

我的做法是在src目录下新建 external-jars 文件夹,把剔除的jar包放在这里,
这里写图片描述

再到本地项目目录下找到

这里写图片描述

添加

<classpathentry kind="lib" path="external-jars/zxing.jar"/>

Paste_Image.png

再clean一下,项目就不会报错了。

4、导入 mutildex 分包所需要的jar包

如图

然后在自定义的 application 类中声明载入dex文件的代码MultiDex.install(this);
这里写图片描述

到这里,理论上就可以正常的运行了,你运气好的话,注意报错不要惊慌,根据日志来排查,在application中使用的jar不能合并,并且放到classes2.dex中去,不然会报找不到该类的异常,因为初始化application的时候,还没有成功加载classes2.dex中去。

附上简易demo

猜你喜欢

转载自blog.csdn.net/u010844304/article/details/80054230
今日推荐