当前位置:   article > 正文

如何自定义dex内最大方法数_--set-max-idx-number=60000

--set-max-idx-number=60000

**

如何自定义dex内最大方法数

**

分包的需求

公司最近要求使用“梆梆加固”,但是很奇怪的提示加固失败。问了一圈安全部的同事后得知dex文件超过了65300。。。直接黑人问号脸,不是都是65535么?咋这个加固要求和别人不一样?算了算了,公司要求,我照做呗。

找方法

由于本来公司安装包就很大,直接使用了谷歌推荐的multiDex来解决。所以当安全部同事反馈方法数超过的时候很奇怪,咱不是做了分包嘛!还是先检查一下dex内方法数吧!
相比自定义dex最大方法数,检查现有dex方法数网上还是比较多的,参考一下android检测apk及dex方法数方法,成功检查出classes.dex方法数超过了
在这里插入图片描述
现在明确知道dex内方法数多少,接下来就是如何定义最大方法数了。
本来嘛,咱们都知道,方法数超过65535的时候,只需要
1、multiDexEnabled置为true
2、引入compile ‘com.android.support:multidex:1.0.0’,这个主要是为了加载dex使用,因为应用默认只会加载主dex,所以其他的dex需要我们自己来加载。
3、分包就ojbk了。
但是·····这只能限制dex文件内方法数少于65535,偏偏用的加固软件必须得少于63000.纠结。。。不过,在对比网上现有分包方法后,发现要么是用脚本,要么是用各种繁琐的方法,有没有一种很简单很easy的呢?

这时候突然想到了,as打包实际上是使用gradle来帮助操作的,那么····我找找gradle相关设置或者代码是不是就能解决了???

在这里插入图片描述
233333333机智如我啊!利用这样的设置,直接在主module的gradle中的android段添加

dexOptions {
        incremental true
        javaMaxHeapSize "4g"
        preDexLibraries = false
        additionalParameters = [//dex参数详见 dx --help
                                '--multi-dex',//多分包
                                '--set-max-idx-number=60000',//每个包内方法数上限
//                                '--main-dex-list='+projectDir+'/castielmaindexlist.txt',//打包进主classes.dex的文件列表
                                '--minimal-main-dex'//使上一句生效
        ]
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

那么就可以直接将dex内方法数限制在60000以下。emmm,又简单又方便,就是总感觉自己是在偷懒,不过,越高效的代码实际上就越让人偷懒嘛!


不过,切记啊!如果你需要使用as直接将应用安装到手机上时,咱们必须得将这段给注释了,不然会提示各种稀奇古怪的错误。emmm,还是有必要继续研究研究gradle的

preDexLibraries = false
        additionalParameters = [//dex参数详见 dx --help
                                '--multi-dex',//多分包
                                '--set-max-idx-number=60000',//每个包内方法数上限
//                                '--main-dex-list='+projectDir+'/castielmaindexlist.txt',//打包进主classes.dex的文件列表
                                '--minimal-main-dex'//使上一句生效
        ]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/266375
推荐阅读
相关标签
  

闽ICP备14008679号