博客
关于我
Android google Multidex分包 gradle 3.1.0 坑
阅读量:512 次
发布时间:2019-03-07

本文共 1627 字,大约阅读时间需要 5 分钟。

项目在很早之前方法数就超过65535,就加了google的Multidex。在第一次加入的无非就是根据api文档中的一步一步的加入到项目中:

基本方案

1、配置APP的build.gradle

在配置文件中增加:

defaultConfig {        // Enabling multidex support.        multiDexEnabled true}
afterEvaluate {tasks.matching {    it.name.startsWith('dex')}.each { dx ->    if (dx.additionalParameters == null) {        dx.additionalParameters = []    }    dx.additionalParameters += '--multi-dex'}
2、在代码中的Application中通过复写attachBaseContext方法中,调用MultiDex.install(this)
@Override    protected void attachBaseContext(Context base) {        super.attachBaseContext(base);        MultiDex.install(this);    }

当然对于这里网上还有许多优化方案,大家可以针对这边做优化。我这里不在去copy。

这样就可以将项目分成好几个dex文件了,但是这个dex文件里面的方法数是随机的,但是不会超过65535。

问题

今天我想说的坑是最近遇到的配置文件中的问题。由于百度加固中要求每个dex的方法数不要超过65530。之前打出来的三个dex,其中有一个恰好是65532,好吧,每次利用百度加固都不成功,没办法只能去解决限制dex中方法的数量。

通过查找网上各种资料,发现有两种方法:

1、使用gradle中增加--set-max-idx-number=48000

2、第三方的dexnkife,github地址:。使用这种方式没有成功,就决定采用第一种方式。

在gradle中增加了

afterEvaluate {tasks.matching {    it.name.startsWith('dex')}.each { dx ->    if (dx.additionalParameters == null) {        dx.additionalParameters = []    }    dx.additionalParameters += '--multi-dex'   dx.additionalParameters += '--set-max-idx-number=48000'}

发现不起任何作用,好吧又查找资料发现这种方式gradle1.5.0之后分包的方式已经换成下面这种方式

dexOptions {        javaMaxHeapSize "3g"        preDexLibraries  false        additionalParameters '-multi-dex',                                '--set-max-idx-number=48000'    }

加了之后发现还是不起作用,顿时感觉好崩溃。

好在看到了从gradle3.1.0之后dex编译采用D8。所以导致这种分包不成功。将gradle的版本降到3.0.0之后,分包成功,每个dex的方法都不超过48000。

另外也可以采用gradle3.1.0,然后将项目的gradle配置android.enableD8=false //暂时关闭

所以今天的目标就是看看3.1.0之后到底应该怎么设置,才能完成限制分包大小的功能

转载地址:http://giejz.baihongyu.com/

你可能感兴趣的文章
Mysql5.6主从复制-基于binlog
查看>>
MySQL5.6忘记root密码(win平台)
查看>>
MySQL5.6的Linux安装shell脚本之二进制安装(一)
查看>>
MySQL5.6的zip包安装教程
查看>>
mysql5.7 for windows_MySQL 5.7 for Windows 解压缩版配置安装
查看>>
Webpack 基本环境搭建
查看>>
mysql5.7 安装版 表不能输入汉字解决方案
查看>>
MySQL5.7.18主从复制搭建(一主一从)
查看>>
MySQL5.7.19-win64安装启动
查看>>
mysql5.7.19安装图解_mysql5.7.19 winx64解压缩版安装配置教程
查看>>
MySQL5.7.37windows解压版的安装使用
查看>>
mysql5.7免费下载地址
查看>>
mysql5.7命令总结
查看>>
mysql5.7安装
查看>>
mysql5.7性能调优my.ini
查看>>
MySQL5.7新增Performance Schema表
查看>>
Mysql5.7深入学习 1.MySQL 5.7 中的新增功能
查看>>
Webpack 之 basic chunk graph
查看>>
Mysql5.7版本单机版my.cnf配置文件
查看>>
mysql5.7的安装和Navicat的安装
查看>>