需要更少的专业解决方案:自动删除发布版本中的所有日志.任何第三方库都在那里



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

我的问题 :

  • 我有很多Log.e,Log.i,Log.d
  • 我需要在发布版本中删除它
  • 我不愿意手动删除所有日志,因为这是一个令人头疼的问题

为什么我提出这个问题:

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

  • 任何 3rd 派对库都可以实现这一点

  • 我尝试使用木材,但我认为它不是那么容易实现

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

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

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

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

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

-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** v(...);
}

相关内容

最新更新