Je souhaite exclure certains chemins de fichiers de ProGuard. Exemplecom.myapp.customcomponents
Comment puis-je faire ceci? Je déteste placer des indicateurs -keep pour chaque fichier de composant personnalisé que j'ai dans ce répertoire.
J'ai essayé ce qui suit mais cela ne fonctionne pas:
-keep public class com.myapp.customcomponents.*
Ajoutez la ligne suivante en bas de votre configuration ProGuard:
Remplacez le nom du package en conséquence, ici le package
com.facebook
sera exclu de ProGuard.la source
{ *; }
dire?Beaucoup de gens semblent recommander
-keep class com.myapp.customcomponents.** { *; }
comme moyen d'exclure un chemin du traitement. Vois ici:Le problème avec cette solution est qu'il y a encore un certain niveau d'obscurcissement en cours, ce qui peut casser votre code. Vous pouvez voir le mappage dans l'impression de mappage:
La solution que j'ai choisie est un processus en deux étapes. Tout d'abord, utilisez
injars
un filtre pour sélectionner le chemin du package que je souhaite traiter. Il est possible d'ajouter les autres chemins de package en tant que bibliothèques.Deuxièmement, fusionnez le pot traité avec le pot d'origine, mais uniquement les chemins qui ont été ignorés.
Le résultat est un fichier jar fusionné qui est la combinaison du chemin du package traité et des chemins ignorés. Cet exercice est invalide, si quelqu'un peut fournir un moyen d'ignorer complètement le traitement de certains chemins (que je n'ai pas trouvé).
la source
Ce qui a fonctionné pour moi avec Android Studio 4.0 est:
Les doubles astérisques (**) dans les autres réponses ne fonctionnaient pas pour moi. J'ai également essayé la configuration ci-dessus avec R8, fonctionne très bien.
la source