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(...);
}