-2

我正在从事的项目中遇到一个奇怪的问题。

我的问题:

  • 我有很多 Log.e、Log.i、Log.d
  • 我需要在发布版本中删除它
  • 我不愿意手动删除所有日志,因为这很头疼

为什么我提出这个问题:

  • 是否可以在不使用 Proguard 的情况下删除 apk 发布版本中的所有日志{因为使用 proguard 会受到很多规则和规定的刺激,而且我个人不喜欢它;-) }

  • 任何 3 rd PARTY 库都可以实现这一目标

  • 我尝试使用 TIMBER,但我认为它并不容易实现

注意:有些人对这个问题投了反对票。我对他们有一个建议如果我问任何不好或错误的问题,最好投反对票。我要求替代解决方案。请不要让我们气馁。

4

2 回答 2

1

如果你真的坚持不使用 Proguard,你可以围绕内置Log框架构建一个“包装器”。Log然后,您将调用包装器,而不是调用 Android语句。例如:

public class LogWrapper {
    public static void d(String tag, String message) {
        if (BuildConfig.DEBUG) {
            Log.d(tag, message);
        }
    }
}

但是,我强烈建议使用 proguard,因为这种方法容易出错,并且需要您记住每次需要记录某些内容时调用 LogWrapper

于 2017-11-10T07:27:46.643 回答
0

您可以使用 progruard 规则来消除对登录版本的调用,请参阅此答案https://stackoverflow.com/a/2466662/4428159

-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** v(...);
}
于 2017-11-10T06:52:43.437 回答