博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android将指定的.class打包到mainDex中
阅读量:4618 次
发布时间:2019-06-09

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

1️⃣ 我们分包的时候会遇到一个问题,因为加载和初始化的问题,如果某个类不在mainDex中,那么程序就会报错,java.lang.NoClassDefFoundError。

2️⃣ 在gradle中我们使用了如下代码可以将指定类型分配到mainDex中:

afterEvaluate {    tasks.matching {        it.name.startsWith('dex')    }.each { dx ->       def listMain = project.rootDir.absolutePath+'/app/maindexlist.txt'        if (dx.additionalParameters == null) {            dx.additionalParameters = []        }       //改变dex方法数上线为50000,超过后进行拆分       dx.additionalParameters += '--set-max-idx-number=50000'        //方法数越界时则生成多个dex文件        dx.additionalParameters += '--multi-dex'        //maindexlist.txt文件为主dex中的类型配置文件        dx.additionalParameters += '--main-dex-list=' + listMain        //-main-dex-list指定的所有class会打包到主dex中       dx.additionalParameters += '--minimal-main-dex'      }} 高版本的gradle需要使用如下方式配置:
dexOptions {        javaMaxHeapSize "4g"        preDexLibraries = false        additionalParameters = ['--multi-dex', '--main-dex-list=' + project.rootDir.absolutePath + '/app/maindexlist.txt', '--minimal-main-dex',                                '--set-max-idx-number=1000']    } 其实我们可以直接参考app\build\intermediates\multi-dex\debug目录下的maindexlist.txt文件 在listMain中添加需要打进mainDex中的.class文件名称 如: android/support/multidex/MultiDex.class android/support/multidex/MultiDexApplication.class android/support/multidex/MultiDexExtractor.class android/support/multidex/MultiDexExtractor$1.class 重新编译 打包 反编译后 我们会在反编译后的jar中看到新增的class文件 具体multiDex分包配置可以参考 http://blog.csdn.net/gaozhan_csdn/article/details/51992100

  

 

转载于:https://www.cnblogs.com/limingblogs/p/8036530.html

你可能感兴趣的文章
软件自动化测试——入门、进阶与实战
查看>>
BZOJ1878 [SDOI2009]HH的项链 树状数组 或 莫队
查看>>
BZOJ3675 [Apio2014]序列分割 动态规划 斜率优化
查看>>
2016.10.24 继续学习
查看>>
产品功能对标 - 服务授权管理
查看>>
各地IT薪资待遇讨论
查看>>
splay入门
查看>>
带CookieContainer进行post
查看>>
C语言学习笔记--字符串
查看>>
关于七牛进行图片添加文字水印操作小计
查看>>
DataSource数据库的使用
查看>>
Luogu4069 SDOI2016 游戏 树链剖分、李超线段树
查看>>
Java的内部类真的那么难以理解?
查看>>
一文搞懂Java环境,轻松实现Hello World!
查看>>
hash实现锚点平滑滚动定位
查看>>
也谈智能手机游戏开发中的分辨率自适应问题
查看>>
关于 IOS 发布的点点滴滴记录(一)
查看>>
《EMCAScript6入门》读书笔记——14.Promise对象
查看>>
CSS——水平/垂直居中
查看>>
Eclipse连接mysql数据库jdbc下载(图文)
查看>>