首页 > 解决方案 > `,**` 对 R8 和 ProGuard 有何改变?

问题描述

我们在包前缀.aar下发布 s,com.company.**并且我们需要混淆出现在**.internal.obfuscate.**它下面的包中的代码。不在此混淆包下的代码应完全保留。

使用 ProGuard,我们通过以下方式实现了这一目标:

-keep class !com.company.**.internal.obfuscate.** { *; }
-keep,allowobfuscation class com.company.**.internal.obfuscate.** { *; }

但这停止了与 R8 的合作。为了让它与 R8 一起工作,我们必须,**按照这个答案中的建议添加

-keep class !com.company.**.internal.obfuscate.**,** { *; }
-keep,allowobfuscation class com.company.**.internal.obfuscate.**,** { *; }

但我不明白,**它在做什么——为什么会这样?我的目标是避免过于宽泛的 ProGuard 规则。

标签: androidproguardobfuscationandroid-r8

解决方案


推荐阅读