Ich benutze Log.i viel in meinem Android-Programm und ich möchte sie alle in Release-Build entfernen.ProGuard kann die Log.i Funktionsaufrufe nicht entfernen
Was ich getan habe, sind wie diese:
- hinzufügen proguard-rules.pro:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
können Sie sehen minifyEnabled
auf true
gesetzt und ich Die Größe der .apk-Datei wird von 1,9 Millionen auf 1,2 Millionen reduziert.
- Add 'proguard-rules.pro'
Ich habe ‚proguard-rules.pro'as:
-assumenosideeffects class android.util.Log {
public static int v(...);
public static int i(...);
}
-dontwarn okio.**
Ich bin mir sicher, dass es verwendet wird, weil es viele Warnungen vor okio * Warnungen gab, bevor die Warnungen verschwunden sind, nachdem ich -dontwarn
hinzugefügt habe.
Um sicherzustellen, dass die Protokolle nicht mehr vorhanden sind, starte ich die App auf einem Gerät, das mit einem PC mit Android Studio verbunden ist. Es ist nicht im Debug-Modus, aber ich benutze nur Android Monitor -> logcat, um zu sehen, ob es eine Log-Ausgabe gibt.
Das Seltsame ist, dass ich noch Log-Ausgabe von meiner App sehe. wie
10-14 18:53:01.436 3173-3173/? I/b: send: 03 ed 00 02 55
Welches ist das Ergebnis meines Code von
Log.i(TAG, "send: "+ toHex(req));
Vom ?
des Stamm ist, gehe ich davon aus ProGuard gearbeitet (sonst soll es mein voller App-Name sein). Aber warum sehe ich immer noch die Logcat Logs? Welchen Schritt habe ich verpasst?