背景
最近遇到打包生产包时无法有效去除Log输出的问题,但是混淆文件已经按照网上通用的做法增加了相关的配置,在Demo中运行也没有问题,但是在公司的项目中运行就会遇到问题。
排查过程
按照网上的通用做法要去除release包中的Log相关方法,需要符合以下几个条件
- 系统的混淆文件要使用“proguard-android-optimize.txt”
- 自己使用的混淆文件中不能有“-dontoptimize”配置
- 所有的module、aar和jar包的混淆文件中都能有“-dontoptimize”配置
解决方法
经过排查,自己项目中的配置没有问题,那问题就只能是出在第三方库。为了确认项目最后打包时使用的混淆文件是否含有“-dontoptimize”配置,在proguard.pro文件中加入“-printconfiguration ../full-config.txt”配置,打包时会在根目录下生成合并后的混淆文件,经过查看该文件,发现合并后的文件中含有“-dontoptimize”配置。基本确认是使用的第三方库使用的混淆文件中有“-dontoptimize”配置,一一排查使用的第三方库中的混淆文件,aar和jar包中的混淆文件位置可以参照官方说明,找到有问题的第三方包,联系提供方修改一下混淆文件,然后重新打包,解决问题。
网友评论