J'essaie d'utiliser proguard pour supprimer tous mes journaux: j'ai entré la ligne suivante dans mon proguard-project.txt:
-assumenosideeffects class Android.util.Log { *; }
Et mon project.properties ressemble à ceci:
proguard.config=${sdk.dir}/tools/proguard/proguard-Android.txt:proguard-project.txt
Malgré cela, les journaux continuent de s'afficher dans mon application. Qu'est-ce que je fais exactement de mal ici?
Vous ne devez pas spécifier le caractère générique '*', car cela inclut des méthodes comme 'Object # wait ()'. Mieux énumérer explicitement les méthodes:
-assumenosideeffects class Android.util.Log {
public static boolean isLoggable(Java.lang.String, int);
public static int v(...);
public static int i(...);
public static int w(...);
public static int d(...);
public static int e(...);
}
Cette option n'est pertinente que si l'optimisation n'est pas désactivée, comme dans proguard-Android.txt
. Vous devez spécifier proguard-Android-optimize.txt
au lieu:
proguard.config=${sdk.dir}/tools/proguard/proguard-Android-optimize.txt:proguard-project.txt
ou avec le contemporain plugin Android Gradle
buildTypes {
releaseSomeBuildType {
...
proguardFiles getDefaultProguardFile('proguard-Android-optimize.txt'), 'your-proguard-file.pro'
}
}
Il est assez tard et j'ai rencontré le même problème. J'utilise Android studio 1.3 et c'est ce que j'ai fait.
Ajoutez les méthodes de journal que vous souhaitez supprimer dans votre build de version dans proguard-Android-optimize.txt
:
-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(...);
}
Dans votre build.gradle (Module: app), définissez proguard-Android-Optimize.txt comme fichier proguard par défaut au lieu de proguard-Android.txt:
buildTypes {
release {
minifyEnabled true
debuggable false
proguardFiles getDefaultProguardFile('proguard-Android-optimize.txt')
}
}
En effet, dans proguard-Android.txt
l'optimisation est désactivée par défaut avec des drapeaux
-dontoptimize
-dontpreverify
Cela a fonctionné pour moi, j'espère que cela aide les autres.
Vous devez le faire comme ceci:
-assumenosideeffects class Android.util.Log {
public static int d(...);
public static int v(...);
public static int i(...);
public static int w(...);
public static int e(...);
public static int wtf(...);
}
et développez pour toutes les méthodes de journal que vous utilisez.