如何禁用ProGuard配置在Android构建阶段的控制台输出?
多模块库项目:禁用构建时ProGuard配置内容的控制台输出
针对你遇到的构建阶段控制台打印ProGuard配置文件完整内容的问题,给你几个可行的解决方法:
方法1:自定义基础ProGuard配置文件
默认的proguard-android-optimize.txt可能存在触发配置打印的隐式设置,你可以自己做一份替代文件:
- 在项目根目录新建
proguard-base-custom.txt,把默认proguard-android-optimize.txt的内容复制进去,然后删掉所有和日志打印相关的指令(比如仔细检查有没有-printconfiguration或者其他会输出配置的参数) - 然后修改每个模块的build.gradle,替换成自定义的基础配置:
proguardFiles file('proguard-base-custom.txt'), '../proguard-rules-library.pro'
方法2:调整Gradle构建日志级别
ProGuard的配置输出属于Gradle日志的一部分,你可以通过调整日志级别过滤掉这类内容:
- 执行构建命令时加上日志参数,比如用
--warn或者--quiet:
./gradlew assembleRelease --warn
- 也可以在项目根目录的
gradle.properties里全局设置日志级别:
org.gradle.logging.level=warn
注意:调低日志级别会同时隐藏其他一些构建信息,按需使用。
方法3:通过Android Gradle插件配置直接禁用
较新版本的Android Gradle插件支持直接关闭ProGuard配置的日志输出,在模块的build.gradle里添加这段配置:
android { buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), '../proguard-rules-library.pro' // 关闭配置内容的日志打印 proguard { configurationLogging = false } } } }
内容的提问来源于stack exchange,提问作者Ilya Zagarovsky
相关产品推荐
相关产品推荐

