Ecplise解决方法书超过65535问题

原理其实就是将不重要的jar包集中用ant打包成一个jar包,再用SDK自带工具dx.bat去将这个jar包编译成classes2.dex文件,在APP启动后动态加载这个分包dex
1.首先准备apache-ant-1.10.1.zip工具,后面会提供用到的工具(需要配置ANT的环境变量,自行百度搜索如何配置)
2.编写base.xml配置文件,将所需要合并的jar包写到里面

<?xml version="1.0" encoding="utf-8"?>  
<project name="libs" basedir="E:\ANT_jar" default="makeSuperJar">  
<target name="makeSuperJar"  description="description">  
    <jar destfile="libs.jar">  
        <zipfileset src="alipaySdk-20151112.jar"/>   
        <zipfileset src="android-async-http-1.4.8.jar"/>          
        <zipfileset src="AMap_Location_V2.7.0_20160726.jar"/>
        <zipfileset src="android-custom-vg.2.6.0.jar"/>
        <zipfileset src="commons-net-3.3.jar"/>
        <zipfileset src="gson-2.1.jar"/>
        <zipfileset src="jcore-android_v1.1.3.jar"/>
        <zipfileset src="mta-sdk-1.6.2.jar"/>
        <zipfileset src="paypaymeny.jar"/>
        <zipfileset src="UPPayAssistEx.jar"/>
        <zipfileset src="UPPayPluginExPro.jar"/>
        <zipfileset src="wftsdk5.0.jar"/>
    </jar>  
</target>  
</project>

这里你只需要改下你的basedir(base.xml文件的绝对路径)目录地址,destfile输出文件的名字和zipfileset你需要合并的jar即可

这里写图片描述
这里一定要注意上面的配置文件和要合并的包在同一个目录下,不然会报无法找到project all的错

3、准备条件做好了以后,打开dos,输入ant -buildfile E:\ANT_jar\base.xml 这时如果成功了就会在E:\ANT_jar文件夹里出现libs.jar包

4、将打好jar包 项目–右键–Build Path –Configure Build Path — Libraries —AddExternal JARs导入,删除以前libs下面的包,前提是这些包都在2中xml里有

5、生成dex文件,先用dos进入到sdk\build-tools\21.0.0目录下,后面的21.0.0是可以不同的,然后输入dx –dex –output=D:\classes.dex E:\ANT_jar\libs.jar ,这里libs.jar 是3生成的jar包,成功了就会生成classes.dex文件在D盘根目录下,将文件重命名为classes2.dex直接复制到项目src目录即可。

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

public class MyApplication extends Application {

    @Override
    protected void attachBaseContext(Context base) {
        // TODO Auto-generated method stub
        super.attachBaseContext(base);
        MultiDex.install(this);
    }

    @Override
    public void onCreate() {
        super.onCreate();
    }
}

7、OK,这里到执行还差重要的一步了就是导入MutiDex类库
我的解决方案是在src下新建相同目录,然后把相应的文件拷贝进去就好了,
这里写图片描述

这是这四个文件的下载地址

下载完成直接拷贝进去就可以了

最后要说一个重点,在APP启动时就马上要加载的jar包千万别进行合并分包,不然会报类找不到的错误
java.lang.IllegalArgumentException: no dialog with id 1 was ever shown via Activity#showDialog
当然这个错误在高级点的手机上没有出现

参考博文:http://blog.csdn.net/qq_19764133/article/details/54020508
http://m.blog.csdn.net/qq_35213388/article/details/78143343

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值