J'utilise beaucoup Log.i dans mon programme android et je veux les supprimer tous dans la version release.ProGuard ne peut pas supprimer les appels de la fonction Log.i
Ce que je l'ai fait sont comme ceux-ci:
- Ajouter proguard-rules.pro:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Vous pouvez voir minifyEnabled
est réglé sur true
et je voir le fichier .apk taille est réduite de 1.9M à 1.2M.
-
Ajouter
- 'proguard-rules.pro'
J'ai ajouté « ProGuard-rules.pro'as:
-assumenosideeffects class android.util.Log {
public static int v(...);
public static int i(...);
}
-dontwarn okio.**
Je suis sûr qu'il est utilisé parce qu'il y avait beaucoup d'avertissement d'avertissements okio * avant que les avertissements soient partis après avoir ajouté -dontwarn
. Pour vérifier que les journaux sont partis, je lance l'application sur un périphérique connecté à un ordinateur avec Android Studio en cours d'exécution. Ce n'est pas en mode débogage, mais j'utilise simplement son moniteur Android -> logcat pour voir s'il y a une sortie de journal. La chose étrange est que je vois toujours la sortie du journal de mon application. comme
10-14 18:53:01.436 3173-3173/? I/b: send: 03 ed 00 02 55
Quel est le résultat de mon code de
Log.i(TAG, "send: "+ toHex(req));
De l'?
du journal, je suppose ProGuard travaillé (sinon il devrait être mon nom complet de l'application). Mais pourquoi je vois toujours les logs de logcat? À quelle étape ai-je manqué?