IDE: Android Studio 1.1.0
Sujet : ProGuard
Problème : Les fichiers ou outils ProGuard non reconnus par Android Studio, getDefaultProguardFile
ne peuvent pas être résolus et il n'y a pas de fichiers proguard-Android.txt
et proguard-rules.txt
dans l'application, voir l'image ci-dessous:
Comment résoudre ce problème et obtenir la protection ProGuard de mon application?
Essayez de changer en -
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
J'ai eu le même problème que celui montré ici:
Le message d'erreur donne l'impression que le fichier n'est pas trouvé, et donc pas lu. Cependant, je suis allé dans le dossier sdk/tools/proguard pour trouver le fichier et, en haut, j'ai ajouté une déclaration pour vérifier si le fichier était en train d'être lu. Je mets en haut "Est-ce que ça va planter?"
Comme vous pouvez le constater, le fichier a bien été trouvé pendant le processus de construction et l’instruction que j’ai ajoutée l’a écrasé. Ainsi, il apparaît que l’erreur "impossible à résoudre le symbole" donne un faux positif.
J'ai vraiment eu le même problème. Voici donc ce qui a fait que mon projet fonctionne:
release {
minifyEnabled true
proguardFile 'proguard-rules.pro'
}
Testé par ce code:
Log.d(TAG, "TEST!");
Log.i(TAG, "INFO!");
Log.e(TAG, "ERROR!");
Dans proguard.pro, j'ai placé cet extrait (qui supprime toutes les instructions Log.d
- du code d'octet).
-assumenosideeffects class Android.util.Log {
public static int d(...);
}
Et le chat dit:
MainAct﹕ INFO!
MainAct﹕ ERROR!
-> exactement ce que j'ai essayé de réaliser :)
PS: Cela suppose que vous avez le fichier proguard.pro
dans le dossier du module (également appelé «app»).
Essayer:
proguardFiles.add(file('proguard-Android.txt'))
proguardFiles.add(file('proguard-rules.txt'))
Cette structure fonctionne dans le plugin gradle-experimental .
J'ai résolu le problème d'Android Studio qui ne reconnaissait pas la méthode en utilisant des guillemets au lieu du simple. Voici ce que j'ai fini par utiliser:
release{
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile("proguard-Android.txt"),
"proguard-rules.pro"
}
essaye ça,
{
minifyEnabled false
// proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
proguardFiles 'proguard-rules.pro'
}