【问题标题】:How to add logging to Android Java app that is stripped out by Proguard?如何将日志记录添加到被 Proguard 剥离的 Android Java 应用程序?
【发布时间】:2011-06-03 00:10:20
【问题描述】:

我在应用程序中添加了大量日志记录以简化调试,但我想确保只有最低限度的日志进入生产应用程序。我的理解是编译器不会删除未使用的代码,Android 没有条件编译,但 Proguard 会删除未使用的代码。这是一个示例跟踪类:

public class Trace
{
  public static final int logginglevel = 5;

  public static final boolean errors = logginglevel > 1;
  public static final boolean warnings = logginglevel > 2;
  public static final boolean info = logginglevel > 3;
  public static final boolean debug = logginglevel > 4;
}

然后在应用程序本身的日志中是这样的:

if (Trace.debug) Log.d(TAG,"problem")

这会成功让 Proguard 识别未使用的语句并将其删除吗?这句话很丑,但它是我能看到的最短的。

是否有更简洁的方法来包括登录 Android 应用程序,但是否会自动将其删除以用于生产构建?我怀疑可以配置 Proguard 本身来删除代码的特定方面,但不确定这是否是比这更好的解决方案。

【问题讨论】:

    标签: java android proguard


    【解决方案1】:

    来自另一个 StackOverflow 响应...

    将此添加到您的 proguard 配置文件中:

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

    【讨论】:

      【解决方案2】:
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-11
      • 2016-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多