J'ai reçu un avertissement ProGuard lorsque je tentais de créer une version de mon projet Android qui empêchait la génération de se terminer correctement.Comment exclure une dépendance de processeur d'annotations de ProGuard
Attention: classe bibliothèque com.google.googlejavaformat.java.filer.FormattingJavaFileObject 1 $ 1 $ ou instruments étend la classe de programmes com.google.common.io.CharSink
Après un peu de creuser et courir gradlew :app:dependencies
, J'ai découvert que google-java-format a été inclus car il est utilisé par AutoFactory, qui a été récemment ajouté au projet.
+--- com.google.auto.factory:auto-factory:1.0-beta5
| +--- com.google.auto:auto-common:0.6 (*)
| +--- com.google.auto.value:auto-value:1.1 -> 1.3
| +--- com.google.googlejavaformat:google-java-format:1.1
AutoFactory n'est inclus dans mon dossier build.gradle
comme annotationProcessor, donc je ne comprends pas pourquoi il est encore en cours de traitement par ProGuard.
provided "com.google.auto.factory:auto-factory:1.0-beta5"
annotationProcessor "com.google.auto.factory:auto-factory:1.0-beta5"
J'ai essayé d'ajouter un -dontwarn com.google.gooogleformat.**
à mon fichier de configuration de ProGuard comprendre que la bibliothèque est utilisée uniquement lors de la génération de code et ne sont pas réellement nécessaires à la libération. Cela n'a eu aucun effet.
J'ai également regardé le online help, mais je ne suis pas clair sur la façon de spécifier cette dépendance comme un fichier -libraryjars
comme suggéré.
Comment configurer le fichier de configuration ProGuard de l'application ou son fichier build.gradle
pour empêcher ProGuard de s'étouffer dans cette bibliothèque? Si c'est important, j'utilise simplement ProGuard pour supprimer le code inutilisé et ne pas effectuer d'obfuscation.
Cela ne semble pas résoudre le problème. Il est compliqué par le fait que nous avons récemment mis à jour vers Android Studio 3.0 avec le greffon Android 3.0.0 Gradle et Gradle 4.1. –
s'il vous plaît essayer avec fourni. ça marche bien – user1820178
Nous essayions déjà avec "fourni" plutôt que "compiler", mais cela n'a pas fait de différence pour ProGuard. Pour être clair, notre problème n'est pas d'utiliser le processeur d'annotation AutoFactory mais de configurer ProGuard pour qu'il ignore ses dépendances lors de la création de versions de versions. –