Ich habe gerade angefangen, AutoValue zu benutzen, aber ich kann es nicht mit proguard arbeiten lassen. Ich habe ungefähr 6000+ Warnungen, die so aussehen
Warnung: autovalue.shaded.com.google.common.auto.common.MoreElements $ 1: kann keine Oberklasse oder Schnittstelle javax.lang.model.util.SimpleElementVisitor6
finden
Der eigentliche Fehler zeigt dies ...
Fehler: Ausführung fehlgeschlagen für Aufgabe ': transformClassesAndResourcesWithProguardForDebug'. java.io.IOException: Bitte korrigieren Sie zuerst die obigen Warnungen.
Wie kann ich dieses Problem lösen?
Dies geschieht, da Sie die Bibliothek als compile
-Abhängigkeit Ihres Projekts hinzugefügt haben. Etwas wie das:
Sie müssen die Bibliothek zu einer provided
Abhängigkeit machen:
Hinweis: Die provided
-Konfiguration wird vom Android Gradle-Plugin zur Verfügung gestellt. Wenn Sie AutoValue in einem reinen Java-Bibliotheksmodul verwenden, verwenden Sie die compileOnly Konfiguration, hinzugefügt in Gradle 2.12.
AutoValue ist eine Bibliothek, die Code für Sie generiert. Ihre einzige Interaktion mit der Bibliothek selbst sollte über die @AutoValue
-Anmerkungen erfolgen, die RetentionPolicy.SOURCE
enthalten - d. H. Sie sind nur in Ihrem Quellcode verfügbar, nicht im kompilierten Code.
Dies bedeutet, dass Ihr kompilierter Code keinerlei Verbindung zum AutoValue-Bibliothekscode hat. Es muss also nicht mit Ihrem Code kompiliert werden - das ist der Code, auf dem ProGuard läuft.
Tags und Links android proguard android-proguard auto-value