从我的apk中删除Timber日志

时间:2017-12-30 18:00:04

标签: android android-studio android-proguard timber

我在我的proguard规则中使用下面的代码来删除我在编译发行版apk之前可能已经离开的任何log.d。

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

有没有办法为所有木材原木做到这一点?

Timber.w("This shouldn't show in release apk when decompiled");

1 个答案:

答案 0 :(得分:0)

同样的方法 - 但使用Timber类而不是Log - 不起作用吗?例如:

-assumenosideeffects class timber.log.Timber* {
    public static *** v(...);
    public static *** d(...);
    public static *** i(...);
}

或者,您可以关注sample project并执行以下操作:

public class App extends Application {
  @Override
  public void onCreate() {
    super.onCreate();

    if (BuildConfig.DEBUG) {
      Timber.plant(new DebugTree());
    } else {
      Timber.plant(new ProductionTree());
    }
  }

  private static class ProductionTree extends Timber.Tree {
    @Override
    protected void log(int priority, String tag, String message, Throwable t) {
      // Do whatever (or nothing) here.
    }
  }
}