【发布时间】:2021-12-23 18:13:13
【问题描述】:
我正在尝试使用 R8/Proguard 删除日志记录,并且我使用了
-assumenosideeffects class android.util.Log {
v(...);
d(...);
i(...);
w(...);
e(...);
}
效果很好。尝试删除com.mypackage中的自定义登录时出现的问题:
-assumenosideeffects class com.mypackage.MyCustomLogger {
v(...);
d(...);
i(...);
w(...);
e(...);
}
我有一条规则,将公共类的所有公共方法都保留在com.mypackage:
-keep, allowoptimization public class com.mypackage.** {
public *;
}
由于项目范围,我无法删除。此规则似乎覆盖了 assumenosideeffects 规则,这是我的问题:我如何指定此保留规则的例外情况?我知道 -if 选项,但我在任何地方都没有看到它用于否定。我曾尝试在 -keep 规则之前编写 -if class !com.mypackage.Logger,但构建需要花费大量时间并且永远不会完成。
【问题讨论】:
标签: android exception logging proguard android-r8