Proguard не срубает бревна

Я использую журналы Timber для входа в свое Android-приложение только в среде отладки, для этой цели я добавил эту строку в свой класс Application:-

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

Впоследствии я использовал это в своей заявке без нареканий. Кроме того, я запутал журналы Timber для варианта сборки выпуска, добавив эти строки в мой proguard-rules.pro файл:-

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

В моем приложении build.gradleЯ добавил это:

release {
      minifyEnabled true
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}

Несмотря на все это в моем производственном приложении, в Crashlytics произошел сбой, вызвавший исключение NullPointerException внутри одного из операторов журнала Timber. Прежде всего, журнал Timber не должен был присутствовать в рабочем приложении, так как я ' мы сократили его, более того, я установил журнал Timber только в среде отладки, поэтому я не понимаю, почему он не сокращен.

0 ответов

Я думаю, что на Timber есть Log. Вы можете попробовать добавить Timber с Log на proguard-rules.pro

# Remove log
-assumenosideeffects class android.util.Log {
public static boolean isLoggable(java.lang.String, int);
public static int d(...);
public static int w(...);
public static int v(...);
public static int i(...);
public static int e(...);
}

-assumenosideeffects class timber.log.Timber* {
public static *** d(...);
public static *** w(...);
public static *** v(...);
public static *** i(...);
public static *** e(...);
}
Другие вопросы по тегам