Importieren von NotNull oder Nullable und Android Studio wird nicht kompiliert

Lesezeit: 5 Minuten

Benutzer-Avatar
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

import org.jetbrains.annotations.NotNull
import org.jetbrains.annotations.Nullable;

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:

JAVA_HOME=C:\Program Files (x86)\Java\jre7
JDK_HOME=C:\Program Files\Java\jdk1.7.0_21\

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

Benutzer-Avatar
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):

dependencies {
    implementation 'com.intellij:annotations:+@jar'
    ...
}

  • 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 / EinstellungProjekt EinstellungenInspektionen 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

Benutzer-Avatar
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

dependencies {
compile 'com.android.support:support-annotations:+'
}

Und Paket importieren zur Klasse.

Für die Verwendung der @Nullable-Annotation:

import android.support.annotation.Nullable;

Für @NonNull

import android.support.annotation.NonNull;

Weitere Informationen finden Sie hier Android-Entwickler

Benutzer-Avatar
Xavier Ducrohet

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.

Benutzer-Avatar
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


Benutzer-Avatar
Mahmudur Rahman

Ich stehe vor diesem Problem für Klasse-5.1.1Android-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


Benutzer-Avatar
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

1186460cookie-checkImportieren von NotNull oder Nullable und Android Studio wird nicht kompiliert

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy