Wie wird die Warnung „Inkrementelle Annotationsverarbeitung angefordert“ entfernt?
Lesezeit: 8 Minuten
Ich habe gerade mit der Android-Entwicklung begonnen und versucht, die Room-Bibliothek zu verwenden. Seit gestern stehe ich vor dieser Warnmeldung
w: [kapt] Inkrementelle Anmerkungsverarbeitung angefordert, aber Unterstützung ist deaktiviert, da die folgenden Prozessoren nicht inkrementell sind: androidx.lifecycle.LifecycleProcessor (NON_INCREMENTAL), androidx.room.RoomProcessor (NON_INCREMENTAL).
Ich habe versucht, diesen Fehler zu recherchieren und zu beheben, konnte ihn aber nicht vermeiden. Hier ist meine grale.build-Datei. bitte vorschlagen/raten, was ich falsch mache.
Warum ist Ihr annotationProcessor kommentiert? Haben Sie versucht, sie zu entkommentieren und dann ein Projekt zu erstellen? (für Raum und Lebenszyklus)
– Ferhat Ergün
27. August 2019 um 9:13 Uhr
Versuchen Sie android.enableSeparateAnnotationProcessing=true in Ihre gradle.properities hinzuzufügen reddit.com/r/androiddev/comments/ai92pt/… gefunden, könnte es mit Ihrem Problem zusammenhängen
– Ferhat Ergün
27. August 2019 um 11:05 Uhr
Sie können kotlin-gradle-plugin in Ihrer Projektdatei build.gradle vorerst auf Version 1.3.41 herunterstufen. Ich denke, es ist ein Fehler, der mit Kapt zusammenhängt. Mehr Info: youtrack.jetbrains.com/issue/KT-33515
– Nekrontyr
27. August 2019 um 18:02 Uhr
Sie können auch eine gradle.properties-Datei in libs/ mit erstellen kapt.incremental.apt=false auch wie in dem Problem als Problemumgehung beschrieben. Es hat für mich funktioniert.
– Nekrontyr
27. August 2019 um 18:50 Uhr
@Necrontyr, dein Vorschlag hat wirklich funktioniert. Vielen Dank
– Schax
28. August 2019 um 5:11 Uhr
Ali Ahmed
Fügen Sie einfach diese Zeile zu Ihrer gradle.properties hinzu:
kapt.incremental.apt=true
Dies ist eine bessere Option als die akzeptierte Antwort. Für diejenigen, die mehr Details verstehen und erfahren müssen, siehe diesen Link: medium.com/avast-engineering/…
– Abhimanyu
7. September 2019 um 18:42 Uhr
ist bei mir auch gescheitert.
– Stefan Schmied
16. September 2019 um 18:41 Uhr
ist jemand, was der Grund ist, warum es hier passiert?
– Omer
15. November 2019 um 1:17 Uhr
Ich habe kürzlich die Datenbindung an mein Android-Projekt (kotlin) aktiviert und diese Warnung erhalten. Das Hinzufügen der Eigenschaft wie oben beschrieben hat bei mir funktioniert. Verwenden Sie auch die neuesten Versionen von allem, z. B. alle Abhängigkeiten, Compiler, Build-Tools, SDKs usw.
– Gail
29. Januar 2020 um 22:32 Uhr
Nur dies zu tun, hat bei mir nicht funktioniert. Ich musste auch meine build.gradle-Datei bearbeiten, wie in beschrieben Dokumentation für die Raumbibliothek.
– Mike F
16. Mai 2020 um 22:41 Uhr
Dimas Mendes
Das eigentliche Problem besteht darin, dass die inkrementelle Verarbeitung die Dinge schneller macht, aber wenn einer der Anmerkungsprozessoren nicht inkrementell ist, wird keiner von ihnen tatsächlich auf diese Weise verarbeitet.
Was ist der Zweck der inkrementellen Verarbeitung?
Aus Ausführung 1.3.30+ermöglichte die inkrementelle Verarbeitung, dass Module nicht bei jeder Änderung erneut vollständig verarbeitet wurden, was dem Build-Prozess eine bessere Leistung verlieh:
Die Hauptschwerpunkte dieser Version waren Kotlin/Native, KAPT-Leistung sowie Verbesserungen für IntelliJ IDEA.
Anmerkungsprozessoren (siehe JSR 269) werden in Kotlin mit dem kapt-Compiler-Plugin unterstützt. Kurz gesagt, Sie können Bibliotheken wie Dagger oder Data Binding in Ihren Kotlin-Projekten verwenden.
Wie behebt man die inkrementelle Raumverarbeitung?
Room Incremental Annotation Processor ist behindert standardmäßig. Dies ist ein bekanntes Problem und es wird beschrieben hier. Sie beabsichtigen, es in Version 2.2.0 zu beheben. Sie können einfach auf das Update warten oder es aktivieren, um die Warnung zu beseitigen, indem Sie Folgendes einstellen:
in gradle.properties Datei:
kapt.incremental.apt=true
(optionale Schritte)
erlauben Datenbindung inkrementell sein:
android.databinding.incremental=true
für schnellere Builds:
kapt.use.worker.api=true
Wenn nur wenige Änderungen vorgenommen werden, verkürzt sich die Bauzeit erheblich:
kapt.include.compile.classpath=false
(zurück zum thema)
in Ihrem Projekt build.gradlefügen Sie die notwendigen Abhängigkeiten hinzu (Groovy):
Gradle Incremental Annotation Processor: Room ist jetzt ein isolierender Gradle-Annotationsprozessor, und die Inkrementierbarkeit kann über die Prozessoroption room.incremental aktiviert werden.
Neuestes Update:
Für die neuesten Kotlin DSL-Versionen verwenden Sie bitte
Dieser sollte akzeptiert werden, da kapt.incremental.apt=true etwas fehlt, wenn Sie Room in Ihr Projekt aufnehmen. Dieser wird in den Android-Dokumenten nicht einmal erwähnt Zimmer
– Sela
6. Oktober 2019 um 14:22 Uhr
Diese Antwort hat mir geholfen, als ich benutzte androidx.lifecycle:lifecycle-extensions in Version 2.1.0 und nach Wechsel auf 2.2.0-beta01 war die Warnung weg!
– simne7
22. Oktober 2019 um 13:43 Uhr
@ simne7 schau dir am Ende meine Bearbeitung an. Version 2.2.0 ist veröffentlicht =) Sie können sie bereits aktualisieren, um auf die inkrementelle Verarbeitungsfunktion zuzugreifen und Ihren Build zu verbessern.
– Dimas Mendes
24. Oktober 2019 um 14:51 Uhr
Würde ermöglichen android.buildcache=true mach es schneller?
– IgorGanapolsky
15. März 2020 um 17:52 Uhr
@IgorGanapolsky laut Google Developers Website, Projects using Android plugin 2.3.0 and higher enable the build cache by default (unless you explicitly disable the build cache). Es macht also keinen Sinn, es zu aktivieren, da es standardmäßig aktiviert ist.
– Dimas Mendes
16. März 2020 um 16:06 Uhr
Es gibt einen Fehler in der kotlin-gradle-plugin-Version von 1.3.50, wie @Necrontyr erwähnt hat. Führen Sie einfach ein Downgrade der kotlin_version in build.gradle(Project) auf 1.3.41 durch.
Der von @Necrontyr erwähnte Fehler hat nichts mit der Warnung zu tun. Die Warnung ist eigentlich beabsichtigt und wenn Sie auf 1.3.41 heruntergehen, wird die Warnung nur ausgeblendet, aber das Problem bleibt das gleiche, wenn nicht schlimmer. Die Leute könnten denken, dass die Dinge schneller werden, weil sie die inkrementelle Anmerkungsverarbeitung aktiviert haben. Aber die Wahrheit ist, dass, wenn einer der Anmerkungsprozessoren nicht inkrementell ist, keiner von ihnen inkrementell verarbeitet wird. Dies ist eine freundliche Erinnerung, die darauf hinweist, welche Bibliothek der Übeltäter ist.
– Antimonit
16. September 2019 um 8:19 Uhr
Die Verwendung einer veralteten Bibliotheksversion ist keine Lösung.
– Andreas Köster
13. November 2019 um 21:00 Uhr
Ist das bei Kotlin immer noch so? 1.3.70?
– IgorGanapolsky
15. März 2020 um 17:50 Uhr
Ich verwende Kotlin 1.3.72 und habe immer noch dieses Problem?
– Anbuselvan Rocky
23. Mai 2020 um 18:51 Uhr
Ich stehe auch vor diesem Problem 1.3.72 irgendwelche Lösung Jungs?
kapt.incremental.apt=true // enabled by default on 1.3.50+
kapt.use.worker.api=true // faster builds
kapt.include.compile.classpath=false // near instant builds when there are few changes
android.databinding.incremental=true
android.lifecycleProcessor.incremental=true
//add your specific library if it supports incremental kapt
Wie wäre es mit android.lifecycleProcessor.incremental=true?
– IgorGanapolsky
15. März 2020 um 17:56 Uhr
Jacques.S
Viele der anderen Antworten hier vertuschen den Fehler oder deaktivieren die inkrementelle Verarbeitung, anstatt sie tatsächlich so funktionieren zu lassen, wie Sie es möchten.
Sie können die inkrementelle Verarbeitung für Ihre spezifische Bibliothek in aktivieren gradle.properties Datei. Fügen Sie einfach diese Einstellungen hinzu oder diejenige, die der Bibliothek entspricht, die den Fehler auslöst:
Ich bin mir nicht so sicher android.lifecycleProcessor.incremental=truescheint nirgends dokumentiert zu sein
– Daniel Wilson
3. Oktober 2019 um 9:05 Uhr
Ich bin mir auch nicht sicher, aber ich habe es aus einer Ahnung heraus versucht, und der Compiler hat aufgehört, mir zu sagen, dass die lifecycleProcessor-Bibliothek keine inkrementelle Verarbeitung aktiviert hat.
– Jacques.S
3. Oktober 2019 um 9:57 Uhr
10140000cookie-checkWie wird die Warnung „Inkrementelle Annotationsverarbeitung angefordert“ entfernt?yes
Warum ist Ihr annotationProcessor kommentiert? Haben Sie versucht, sie zu entkommentieren und dann ein Projekt zu erstellen? (für Raum und Lebenszyklus)
– Ferhat Ergün
27. August 2019 um 9:13 Uhr
Versuchen Sie android.enableSeparateAnnotationProcessing=true in Ihre gradle.properities hinzuzufügen reddit.com/r/androiddev/comments/ai92pt/… gefunden, könnte es mit Ihrem Problem zusammenhängen
– Ferhat Ergün
27. August 2019 um 11:05 Uhr
Sie können kotlin-gradle-plugin in Ihrer Projektdatei build.gradle vorerst auf Version 1.3.41 herunterstufen. Ich denke, es ist ein Fehler, der mit Kapt zusammenhängt. Mehr Info: youtrack.jetbrains.com/issue/KT-33515
– Nekrontyr
27. August 2019 um 18:02 Uhr
Sie können auch eine gradle.properties-Datei in libs/ mit erstellen
kapt.incremental.apt=false
auch wie in dem Problem als Problemumgehung beschrieben. Es hat für mich funktioniert.– Nekrontyr
27. August 2019 um 18:50 Uhr
@Necrontyr, dein Vorschlag hat wirklich funktioniert. Vielen Dank
– Schax
28. August 2019 um 5:11 Uhr