ProGuard 优化通过了在 Android Studio 3.4.1 中突然生成构建时跳过的 5 条规则
Posted
技术标签:
【中文标题】ProGuard 优化通过了在 Android Studio 3.4.1 中突然生成构建时跳过的 5 条规则【英文标题】:ProGuard optimization passes 5 rule skipped on generating build in Android studio 3.4.1 suddenly 【发布时间】:2020-02-19 13:58:07 【问题描述】:Proguard 优化通道 5 工作正常,构建完成了所有五个级别的通道(请参阅下面的日志),但是 Gradle 突然跳过(没有任何警告)ProGuard 优化通道(日志如下所示)
环境由 android Studio 3.4.1、Gradle 插件 3.4.1 和 ProGuard 6.0.3 组成。 R8 在 gradle.properties 中被禁用,而 useProguard 在 app 模块 build.gradle 中被启用。应用在 Java 平台上。
尝试了其他 SO 帖子中建议的以下选项(与 ProGuard 优化无关),但没有成功。 删除 .gradle 文件夹。 Android Studio 中的缓存无效 尝试将 Gradle 插件更改为 3.3.1
Working Proguard 优化 Gradle 日志
Shrinking...
Printing usage to ...
Removing unused program classes and class elements...
Original number of program classes: 7098
Final number of program classes: 5859
Optimizing (pass 1/5)...
Optimizing (pass 2/5)...
Optimizing (pass 3/5)...
Optimizing (pass 4/5)...
Optimizing (pass 5/5)...
Shrinking...
Removing unused program classes and class elements...
Original number of program classes: 5815
Final number of program classes: 5815
Obfuscating...
跳过优化 Gradle 日志
Shrinking...
Printing usage to ...
Removing unused program classes and class elements...
Original number of program classes: 7415
Final number of program classes: 6151
Obfuscating...
尝试通过禁用 R8 将 Android Studio 升级到 3.5 版本,但同样的问题仍然存在。甚至在多台机器上都尝试过。
没有针对此类问题的 SO 帖子。请协助。
【问题讨论】:
【参考方案1】:为我找到了解决方案 -
在 build.gradle 我更改了这一行:
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
到这里:
proguardFiles 'proguard-rules.pro'
即取出 proguard-android.txt 部分。这是基于this answer 声明的
如果不想优化,请使用 proguard-android.txt 配置文件而不是这个,它会关闭 优化标志
不确定是不是你拥有的,但值得一试。另外,我会确保您了解您使用的是 R8(新的缩小器)还是实际上正在快速过渡的 Proguard
干杯!
【讨论】:
以上是关于ProGuard 优化通过了在 Android Studio 3.4.1 中突然生成构建时跳过的 5 条规则的主要内容,如果未能解决你的问题,请参考以下文章
在 Android Studio 中分析 Proguard 优化构建的最佳方式?