У меня есть опубликованное приложение, которое упало на Log.i("TAG", myCustomObject.toString())
.Я исправил этот сбой, исправив метод toString()
моего пользовательского объекта.У меня действительно была проблема, и это не проблема ... Однако мне любопытно, потому что этот метод не должен вызываться в версии "release", так как я "отключил" android.util.Log
через proguard.
Я отключил android.util.Log
через proguard следующим образом:
proguard-rules_release.pro
-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(...);
}
build.gradle
release {
zipAlignEnabled true
debuggable false
shrinkResources true
minifyEnabled true
signingConfig signingConfigs.common
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules_release.pro'
}
Строка аварии:
Log.i(LOG_TAG, "Result: " + myCustomObject);
Ошибка произошла из-за ошибки в методе toString()
пользовательского объекта.Это нормально ... Мне просто любопытно, потому что я думал, что эта строка будет полностью удалена Proguard ... Я не вижу никаких сообщений журнала в версии выпуска, поэтому я предполагаю, что Proguard работает нормально и удаляет все сообщения журналаиз приложения.Но мне любопытно, почему у меня произошел сбой на этой линии ...