Importieren von NotNull oder Nullable und Android Studio wird nicht kompiliert
Lesezeit: 5 Minuten
Möberg
Wenn ich @NotNull- oder @Nullable-Anmerkungen zu einem Parameter hinzufüge, hilft mir Android Studio automatisch beim Hinzufügen von /lib/annotations.jar und beim Importieren
Aber danach wird das Projekt nicht kompiliert. Wenn ich auch die Anmerkungen entferne, aber die Importanweisungen behalte, wird das Projekt immer noch nicht kompiliert. Aber Wenn ich die Importanweisungen für NotNull und Nullable entferne, wird das Projekt kompiliert fein!
Android Studio gibt einen allgemeinen Fehler aus:
Gradle:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':Bugtester:compileDebug'.
> Compilation failed; see the compiler error output for details.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Betrieb gradlew compileDebug von cmd gibt einen kleinen Hinweis:
:Bugtester:compileDebug FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':Bugtester:compileDebug'.
> Cannot find System Java Compiler. Ensure that you have installed a JDK (not just a JRE) and configured your JAVA_HOME system variable to point to the according directory.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Also habe ich meine Umgebungsvariablen überprüft und sie sind wie folgt eingestellt:
Hat jemand eine Idee dazu? (Ich bin neu in der Java- und Android-Programmierung)
Ich bin mit Gradle nicht vertraut, aber Sie sollten wahrscheinlich eine Abhängigkeit von hinzufügen annotations.jar zu build.gradle. Etwas wie dependencies { compile files('full/path/to/annotations.jar') }
– Wladimir Mironow
22. Mai 2013 um 12:04 Uhr
Danke, das hat das Problem behoben! Ich dachte, das Hinzufügen der Abhängigkeit war das, was Android Studio automatisch tat, als ich zum ersten Mal @NotNull schrieb und es wollte, dass ich etwas hinzufüge.
– Möberg
22. Mai 2013 um 12:44 Uhr
Eine Erklärung für dieses Verhalten finden Sie hier stackoverflow.com/questions/16622410/…
– Wladimir Mironow
22. Mai 2013 um 12:54 Uhr
@vmironov Wenn Sie dies als Antwort hinzufügen, kann ich es akzeptieren.
– Möberg
12. August 2013 um 15:27 Uhr
Serge Populov
Ich denke, der richtige Weg ist die Verwendung der originalen JetBrains-Bibliothek aus dem MavenCentral-Repository in Ihren build.gradle-Abhängigkeiten (in diesem Beispiel die neueste verfügbare Version):
implementation wird stattdessen verwendet compile in neueren Versionen
– Diblo Dk
25. April 2018 um 19:38 Uhr
Ich verwende die Implementierung ‘org.jetbrains:annotations:16.0.2’ – für gradle-5.1.1 funktioniert es für mich.
– Mahmudur Rahman
6. Mai 2019 um 10:20 Uhr
Complete newb here -> Android 4, das hat bei mir auch nach resync gradle und rebuild project nicht funktioniert. Ich bekomme immer noch rote Fehler.
– Dekan Hiller
25. Juli 2020 um 1:35 Uhr
Das Entfernen dieser Zeilenimplementierung ‚org.jetbrains:annotations:15.0‘ aus meiner build.gradle-Datei löste mein Problem.
– Aqeel Mogul
12. Juli 2021 um 10:32 Uhr
es ist mein Leben retten 🙂
– Tanveer Munir
5. September 2021 um 14:11 Uhr
Sie können auch die von Android verwenden @NonNull & @Nullable:
Fügen Sie Folgendes hinzu build.gradle:
dependencies {
...
// For @Nullable/@NonNull
compile 'com.android.support:support-annotations:+'
}
Gehe zu Datei / Einstellung → Projekt Einstellungen → Inspektionen und suchen Sie nach “nullable”.
Im Konstante Bedingungen & Ausnahmen und @NotNull/@Nullable-Problemeklicken Anmerkungen konfigurieren und wählen Sie die Anmerkungen von Android aus.
Vielleicht möchten Sie auch auschecken @Nullable-Anmerkungen vorschlagen… unter Konstante Bedingungen & Ausnahmenoder optimieren Sie möglicherweise andere Optionen.
Ihre Antwort hat mein Problem gelöst. Nur eine Sache: Die Warnung “Vermeide die Verwendung von + in der Versionsnummer” wird angezeigt … ich habe meine Version so eingestellt: compile 'com.android.support:support-annotations:23.1.1'
– Primoz990
26. November 2015 um 9:26 Uhr
Sollte das auf Mac Android Studio -> Einstellungen sein, aber dann kann ich weder Projekteinstellungen noch Inspektionen finden. Ich verwende Android Studio 4.
– Dekan Hiller
25. Juli 2020 um 1:36 Uhr
Roman Smoliar
Für die Verwendung von Anmerkungen zur Android-Unterstützung wie – @Nullable, @NonNull usw. In Ihrem Projekt muss die Bibliothek für Anmerkungen zur Android-Unterstützung importiert werden. Gerade fügen Sie diese Zeile zu Abhängigkeiten hinzu in Gradle-Datei
Im Moment gibt es keine NonNull/Nullable-Anmerkungen in der Android-API oder in der Support-Bibliothek. Sie können IntelliJ auch nicht verwenden, da sie sich beim Erstellen mit Gradle nicht im Kompilierungsklassenpfad befinden.
Sie können jedoch ganz einfach Ihre eigenen erstellen. Es ist sehr einfach:
@Documented
@Retention(RetentionPolicy.CLASS)
@Target({METHOD,PARAMETER,LOCAL_VARIABLE,FIELD})
public @interface NonNull {
}
Sobald dies ausgefallen ist, können Sie IntelliJ (oder Android Studio) so konfigurieren, dass es diese (und die passende @Nullable) als Standardanmerkung für Nullprüfungen verwendet werden.
Gehen Sie dazu in die IntelliJ-Einstellungen unter Inpectionsund finden Sie dann die @NotNull/@Nullable problems Eintrag unter Probable Bugs im Inspektionsbaum.
Wählen Sie das Element aus und unten rechts haben Sie eine Schaltfläche zum „Konfigurieren von Anmerkungen“. Auf diese Weise können Sie Ihre eigenen Anmerkungen als diejenige festlegen, die intelliJ für diese Inspektion verwendet.
Amio.io
Im Jahr 2015 hätten Sie Anmerkungen von verwendet android.support.annotation Paket. Ich bin mir nur nicht sicher, wann sie sie wie in hinzugefügt haben Dokumente es gibt nicht den typischen Satz “Hinzugefügt in API-Level X” und ich habe keine Lust, Blogs usw. zu lesen. >]
import android.support.annotation.NonNull;
...
public void fooFighter(@NonNull Object honeyBunny){
...
}
Vorbei sind die Zeiten von 2015, in den Zeiten von 2019 androidx.Anmerkung:Anmerkung:1.xx 😛
– Varun
27. April 2019 um 10:32 Uhr
Smooooooth! +1 😉
– Varun
28. April 2019 um 16:31 Uhr
Mahmudur Rahman
Ich stehe vor diesem Problem für Klasse-5.1.1 – Android-Studio 3.4 und der Fehler so – Kompilierung fehlgeschlagen; Einzelheiten finden Sie in der Compiler-Fehlerausgabe. Ausführung für Aufgabe „:app:compileDebugJavaWithJavac“ fehlgeschlagen. usw. In diesem Fall verwende ich
implementation 'org.jetbrains:annotations:16.0.2'
und vor allem Fehler wird klar sein.
Vorbei sind die Zeiten von 2015, in den Zeiten von 2019 androidx.Anmerkung:Anmerkung:1.xx 😛
– Varun
27. April 2019 um 10:32 Uhr
Smooooooth! +1 😉
– Varun
28. April 2019 um 16:31 Uhr
Azizjan Hamidovich Ayupov
Einfach importieren androidx.annotation.Nullable zu diesem Zweck
Vielen Dank! Ab heute ist dies die einfachste Änderung
– Nagabhushan SN
4. Juli 2021 um 6:03 Uhr
11864600cookie-checkImportieren von NotNull oder Nullable und Android Studio wird nicht kompiliertyes
Ich bin mit Gradle nicht vertraut, aber Sie sollten wahrscheinlich eine Abhängigkeit von hinzufügen
annotations.jar
zubuild.gradle
. Etwas wiedependencies { compile files('full/path/to/annotations.jar') }
– Wladimir Mironow
22. Mai 2013 um 12:04 Uhr
Danke, das hat das Problem behoben! Ich dachte, das Hinzufügen der Abhängigkeit war das, was Android Studio automatisch tat, als ich zum ersten Mal @NotNull schrieb und es wollte, dass ich etwas hinzufüge.
– Möberg
22. Mai 2013 um 12:44 Uhr
Eine Erklärung für dieses Verhalten finden Sie hier stackoverflow.com/questions/16622410/…
– Wladimir Mironow
22. Mai 2013 um 12:54 Uhr
@vmironov Wenn Sie dies als Antwort hinzufügen, kann ich es akzeptieren.
– Möberg
12. August 2013 um 15:27 Uhr