web-dev-qa-db-de.com

Kotlin nicht aufgelöste Referenz in IntelliJ

Ich begann mit dem tutorial , um Kotlin in IntelliJ zu lernen. Als ich versuchte, das Beispiel auszuführen, d

fun main(args: Array<String>) {
 println("lol")
}

Die Ausführung wird mit dieser NachrichtError:(5, 5) Kotlin: Unresolved reference: println.__ ausgesetzt. Dies ist das erste Mal, dass ich IntelliJ verwende. Ich habe noch nie an einem Java-Projekt gearbeitet.

Edit: Ich habe die andere question schon gesehen. Die Antwort ist für meine Situation nicht gültig.

51
Anony-mouse

Ihr Intellij IDEA - Plugin und der Kotlin-Laufzeit-/Compiler, den Sie im Projekt verwenden, müssen übereinstimmen. Wenn das Plugin IDE beispielsweise Beta 1 ist, Ihr Gradle/Maven-Projekt jedoch M12 verwendet, werden Probleme auftreten, die Sie genau beschrieben haben. Überprüfen Sie also, ob alles ausgerichtet ist.

Wenn Sie immer noch Probleme haben, müssen Sie bei älteren Plugins die Caches in Intellij IDEA löschen (Dateimenü, Caches löschen und Neustart, Option zum Neustart auswählen).

59
Jayson Minard

Wenn jemand darüber stolpert und WEDERInvalidate Cache noch Update Kotlin's Version funktionieren: 

1) Stellen Sie zunächst sicher, dass Sie es außerhalb der IDE erstellen können. Wenn Sie gradle verwenden, beispielsweise:

gradle clean build

Wenn alles gut geht, ist Ihre Umgebung gut geeignet, um mit Kotlin zu arbeiten.

2) Um den Build IDE zu reparieren, versuchen Sie mit dem folgenden:

Projektstruktur -> {Modul auswählen} -> Kotlin -> FIX

Wie von einem JetBrain-Mitglied hier vorgeschlagen: https://discuss.kotlinlang.org/t/intellij-kotlin-project-screw-up/597

15
vinitius

Ich bin in dieses Problem geraten. Ich musste meinem build.grade folgendes hinzufügen: 

apply plugin: 'kotlin-Android'

8
Nick

In meinem Fall war es eine falsch konfigurierte IntelliJ-Instanz.

Projektstruktur -> SDKs -> Entfernen Sie das Java SDK und fügen Sie es erneut hinzu

7
Martín Coll

Für mich war es aufgrund des Projekts, dass Gradle Libraries in seiner Projektstruktur fehlten. 

Fügen Sie einfach in build.gradle hinzu: apply plugin: 'idea'

Führen Sie dann Folgendes aus: $ gradle idea

Danach baut Gradle Abhängigkeitenbibliotheken wieder auf und die Referenzen werden erkannt!

4
R Lu

Ich habe alles ausprobiert: Clean-Build-Ordner, gradle clean build ausführen, AS-Cache (x2) ausführen, Kotlin-Plugin neu installieren, pc neu starten. 

Aber am Ende funktionierte es immer noch nicht, aber auch das Entfernen dieser Zeile aus dem Projektcode build.gradle: apply plugin: 'kotlin-Android-extensions', gradle sync und anschließend erneutes Hinzufügen

2
Ultimo_m

Ok, ich war schon ein paar Mal hier und bin mir nicht ganz sicher, wie oder warum dies geschieht, aber das Lesen deutet darauf hin, dass es ein Missverhältnis von Kotlin/JVM ist. Ich habe einige Dinge ausprobiert, die auf dieser Seite erwähnt wurden, aber nicht ohne vollen Erfolg. Dies war die Art von Symptom, das IDE im Nachrichtenfenster angezeigt hat, nachdem versucht wurde, Tests über die IDE auszuführen. Das Codefenster weist jedoch keine roten Linien auf, die darauf hinweisen, dass Module nicht gefunden oder importiert werden können oder dass irgendetwas ungeeignet ist.

 enter image description here

Mein Projekt (zum Zeitpunkt der Erstellung dieses Dokuments) ist ein Abschlussprojekt 4.10.2 kotlin 1.3 in IntelliJ (IntelliJ IDEA 2018.2.5 (Ultimate Edition) Build # IU-182.4892.20, erstellt am 16. Oktober 2018).

Für den Anfang habe ich jedoch die Caches für ungültig erklärt und neu gestartet. Dann lief ein gradle clean build. Nach dem Wiederaufbau des Projekts keine Freude mehr. Ich ging in die Projekteinstellungen und bemerkte, dass die Compilerversionen nicht auf Java 8 eingestellt waren. Ich setzte die Compiler/Kotlin/Target-JVM-Version und Compiler/Java/Project-Bytecode auf 1.8/8 (siehe unten) und führte dann einige Tests durch die IDE und wir sind wieder im Geschäft! Referenzen wurden in meinem Fall gelöst.

 enter image description here

 enter image description here

2
Opentuned

Hatte dasselbe mit IDEA 14.1.5, Kotlin v.1.0.0-beta-1038-IJ141-17.
Kotlin erhält beim Erstellen eines neuen Projekts einen eigenen Listeneintrag (wie Java), aber die einzige funktionierende Konfiguration war:

Neu | Projekt | Java | "Kotlin (Java)" (stellen Sie sicher, dass Sie auch Project SDK konfiguriert haben)
use library: Erstellen Sie "Kopieren nach: lib".

1
kaay

Manchmal ist es in ähnlichen Situationen (ich glaube nicht, dass es Ihr Problem ist, weil Ihr Fall sehr einfach ist), das Kotlin-Dateipaket zu prüfen.

Wenn Sie eine Kotlin-Datei im selben Paket haben und dort einige Klassen eingefügt haben und die Paketdeklaration verpasst haben, sieht es in der IntelliJ aus, dass Sie Klassen im selben Paket haben, aber ohne Definition des Pakets zeigt Ihnen IntelliJ:

Fehler: (5, 5) Kotlin: Ungelöster Verweis: ...

0
Przemek Nowak

Eine mögliche Lösung für eigenständige Kotlin-Projekte besteht darin, Kotlin-Standard-Bibliotheken explizit in das Stammprojekt aufzunehmen. 

Um dies in IntelliJ IDEA zu tun:

  • drücke Strg + Umschalt + A (Suchaktionen oder -optionen) 
  • geben Sie "Configure kotlin in project" ein und lassen Sie die Standard-Libs für Sie enthalten
0

Mein Problem wurde durch Hinzufügen von kotlin wie folgt gelöst

presentation.gradle (app.gradle)

apply plugin: 'com.Android.application'

apply plugin: 'kotlin-Android' // here

apply plugin: 'kotlin-Android-extensions' // and here

Android {
    ...
}

dependencies {
    ...
}

domain.gradle (reines kotlin)

Mein Fehler wurde hier geworfen, da Android Studio meine Domäne .__ erstellt. Modul als reines Java-Modul und angewendetes Plug-In als Java, und ich habe es verwendet In meinem Präsentationsmodul ist dies ein Android/Kotlin-Modul

Das Android Studio sucht und importiert den Pfad des Pakets, aber die Inkompatibilität erlaube nicht das bauen.

Entfernen Sie einfach apply plugin: 'Java' und wechseln Sie wie folgt zu kotlin

apply plugin: 'kotlin' // here is

dependencies {
    ...
}

...

data.gradle

apply plugin: 'com.Android.library'

apply plugin: 'kotlin-Android' // here

apply plugin: 'kotlin-Android-extensions' // and here 

Android {
    ...
}

dependencies {
    ..
}

Ich denke, dass es hilfreich sein wird

0
Abner Escócio