我正在尝试使用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
规则,我的问题是:如何为这个keep规则指定异常我知道-if
选项,但我还没有在任何地方看到它被用于否定。我曾尝试在-keep
规则之前编写-if class !com.mypackage.Logger
,但构建过程花费了大量的时间,而且始终无法完成。
我找到了答案,我需要在keep规则中添加Logger类,如下所示:
-keep, allowoptimization public class !com.mypackage.MyCustomLogger, com.mypackage.** {
public *;
}