Я использую Timber журналы для входа в мое приложение Android только в среде отладки, для этой цели я добавил эту строку в свой класс приложения: -
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 только в среде отладки, поэтому не понимаю, почему он не урезан.