Proguard/R8 保留规则例外
Proguard/R8 exception to a keep rule
我正在尝试使用 R8/Proguard 删除日志记录,我使用了
-assumenosideeffects class android.util.Log {
v(...);
d(...);
i(...);
w(...);
e(...);
}
效果很好。尝试删除 com.mypackage
:
中的自定义登录时出现的问题
-assumenosideeffects class com.mypackage.MyCustomLogger {
v(...);
d(...);
i(...);
w(...);
e(...);
}
我有一条规则,保留 public 类 的所有 public 方法来自 com.mypackage
:
-keep, allowoptimization public class com.mypackage.** {
public *;
}
由于项目的范围,我无法删除它。该规则似乎覆盖了 assumenosideeffects
规则,这是我的问题:我如何指定此保留规则的例外情况? 我知道 -if
选项但是我还没有看到它在任何地方被用于负面。我试过在 -keep
规则之前写 -if class !com.mypackage.Logger
,但是构建花费了很多时间,而且永远不会完成。
我找到了答案,我需要在 keep 规则中添加我的记录器 class,如下所示:
-keep, allowoptimization public class !com.mypackage.MyCustomLogger, com.mypackage.** {
public *;
}
我正在尝试使用 R8/Proguard 删除日志记录,我使用了
-assumenosideeffects class android.util.Log {
v(...);
d(...);
i(...);
w(...);
e(...);
}
效果很好。尝试删除 com.mypackage
:
-assumenosideeffects class com.mypackage.MyCustomLogger {
v(...);
d(...);
i(...);
w(...);
e(...);
}
我有一条规则,保留 public 类 的所有 public 方法来自 com.mypackage
:
-keep, allowoptimization public class com.mypackage.** {
public *;
}
由于项目的范围,我无法删除它。该规则似乎覆盖了 assumenosideeffects
规则,这是我的问题:我如何指定此保留规则的例外情况? 我知道 -if
选项但是我还没有看到它在任何地方被用于负面。我试过在 -keep
规则之前写 -if class !com.mypackage.Logger
,但是构建花费了很多时间,而且永远不会完成。
我找到了答案,我需要在 keep 规则中添加我的记录器 class,如下所示:
-keep, allowoptimization public class !com.mypackage.MyCustomLogger, com.mypackage.** {
public *;
}