为特定口味禁用 R8

Posted

技术标签:

【中文标题】为特定口味禁用 R8【英文标题】:Disable R8 for specific flavors 【发布时间】:2020-03-17 12:21:45 【问题描述】:

我想为我的应用程序的特定风格禁用 R8(因此设置 android.enableR8=false)。有谁知道该怎么做,或者甚至可能吗? 我能否以某种方式指定 gradle.properties 文件,或者这将如何工作?

【问题讨论】:

试试这个链接:enter link description here 我找到了一个更简单的解决方案试试这个链接:***.com/a/43329997/12419420 其他人的背景信息(以及我为什么来到这里):这可能是因为 Amazon IAP 与 Gradle 3.4.0 启用了 R8 的问题所需要的):developer.amazon.com/docs/in-app-purchasing/… 【参考方案1】:

我现在通过从命令行传递参数解决了这个问题。这会覆盖 gradle.properties 中的设置。因为我手头有一个脚本可以为特定风格创建发布版本,所以效果很好。根据我通过的口味:

./gradlew -P android.enableR8=false assemble[...]Release

./gradlew -P android.enableR8=true assemble[...]Release

现在这对我有用 :)

【讨论】:

不推荐使用“android.enableR8”选项。它在 Android Gradle 插件的 7.0 版中被删除。请将其从gradle.properties 中删除。【参考方案2】:

我能够解决这个问题。我没有编辑build.gradle 文件,而是将-dontobfuscate 添加到proguard-rules.pro 文件中。 (您可以为调试和发布版本配置不同的 proguard 规则文件。)这跳过了混淆步骤,并允许我使用 R8 进行缩小的调试版本。

【讨论】:

感谢您的回答,但不幸的是,这对我不起作用。我需要为特定的产品风味完全禁用 R8,但为其他人保留它。

以上是关于为特定口味禁用 R8的主要内容,如果未能解决你的问题,请参考以下文章

仅当特定输入为空时,如何禁用按钮?

为特定请求/URL/端点禁用登录 gunicorn

为特定请求禁用 ajaxStart() 和 ajaxStop()

怎样禁用键盘的某个特定按键

无法禁用特定编译器警告 (4100)

如何以编程方式为特定视图控制器禁用/启用睡眠模式?