Сбой приложения в методе, который должен удалить proguard - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть опубликованное приложение, которое упало на 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 работает нормально и удаляет все сообщения журналаиз приложения.Но мне любопытно, почему у меня произошел сбой на этой линии ...

...