android 去除日志无效

背景

最近遇到打包生产包时无法有效去除Log输出的问题,但是混淆文件已经按照网上通用的做法增加了相关的配置,在Demo中运行也没有问题,但是在公司的项目中运行就会遇到问题。

排查过程

​ 按照网上的通用做法要去除release包中的Log相关方法,需要符合以下几个条件

  1. 系统的混淆文件要使用“proguard-android-optimize.txt”
  2. 自己使用的混淆文件中不能有“-dontoptimize”配置
  3. 所有的module、aar和jar包的混淆文件中都能有“-dontoptimize”配置

解决方法

经过排查,自己项目中的配置没有问题,那问题就只能是出在第三方库。为了确认项目最后打包时使用的混淆文件是否含有“-dontoptimize”配置,在proguard.pro文件中加入“-printconfiguration ../full-config.txt”配置,打包时会在根目录下生成合并后的混淆文件,经过查看该文件,发现合并后的文件中含有“-dontoptimize”配置。基本确认是使用的第三方库使用的混淆文件中有“-dontoptimize”配置,一一排查使用的第三方库中的混淆文件,aar和jar包中的混淆文件位置可以参照官方说明,找到有问题的第三方包,联系提供方修改一下混淆文件,然后重新打包,解决问题。

参考

  1. Android去掉/混淆Log,反编译都看不到
  2. Android release包去掉Log日志
  3. Android使用R8压缩,混淆,优化App

你可能感兴趣的:(android 去除日志无效)