已弃用Progruard和R8-Android Studio 3.6


9

在将Android Studio升级到3.6之后,关于Proguard和R8的警告已过时。这是否意味着我们不应该在项目中使用混淆功能,还是在发布模式下构建时应该考虑其他等效选项?

选项'android.enableR8'已被弃用,不应再使用。它将在未来版本的Android Gradle插件中删除,并且不再允许您禁用R8。受影响的模块:等


您能否分享您收到的消息?
Anton Baranenko

您能否在这种情况下澄清“过时的警告”的含义?警告的实际文本可能会有所帮助。
Peter Tefft

我不记得确切的消息,但它说它已被弃用。旁注:升级到Android Studio 3.6之后,我已经了解了
Rixment

要获得答案,您应该发布完整的确切警告消息。例如,该useProGuard设置在不久前已被弃用-也许正是您所看到的,但您记错了它。
迈克尔

我本周一直切换到R8,并useProGuard从我的毕业典礼中删除了所有内容
Rixment

Answers:


7

这是否意味着我们不应该在项目中使用混淆

不可以。您可以使用混淆和优化工具。

在发布模式下构建时,还有其他等效的选择吗?

如果你有android.enableR8 = true你的gradle.properties,其拆下R8它设置为默认工具和android.enableR8设置本身已被弃用,导致这些废弃警告。

如果您必须android.enableR8 = false使用proguard进行优化和混淆,请考虑迁移到R8。


如何使项目变得模糊?我删除了所有给定的属性,并说要从build.gradle中删除R8的依赖关系,我无法再编译项目,我得到R8NullPointerException是什么?
Lena Bru

这似乎超出了本文注释部分的范围。
laalto

@laalto我从您的答案中得到的是R8将自动运行,因此无需添加android.enableR8 = true,对吗?
穆罕默德

@Mohamed如果您拥有Android Gradle插件3.6或更高版本,那也是我的理解。
laalto
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.