Kotlin nierozwiązane odniesienie w IntelliJ

93

Zacząłem od samouczka do nauki Kotlina w IntelliJ.Kiedy próbowałem uruchomić przykład tj

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

Wykonywanie jest zawieszone z tym komunikatem Error:(5, 5) Kotlin: Unresolved reference: println Po raz pierwszy używam IntelliJ.Nigdy też nie pracowałem nad Javaprojektem.Czy czegoś mi brakuje?

Edycja: widziałem już inne pytanie, odpowiedź nie dotyczy mojej sytuacji.

Mysz Anony
źródło
Wersja Intellij IDEA? Jaka wersja wtyczki Kotlin jest zainstalowana?
D3xter
Którą opcję wybrałeś w oknie dialogowym środowiska uruchomieniowego Kotlin?
yole
Właśnie zainstalowałem go wczoraj.
IDEA
Tak, otrzymuję to również w przykładzie „Hello world” przy użyciu Gradle i Netbeans. Konstrukcja gradle działa. Wygląda też na problem z wtyczką w Netbeans. Niestety, nie ma ostatnich aktualizacji wtyczki Netbeans
będzie

Odpowiedzi:

92

Twoja wtyczka Intellij IDEA i środowisko uruchomieniowe / kompilator Kotlin, których używasz w projekcie, muszą być zgodne. Na przykład, jeśli wtyczka IDE to Beta 1, ale twój projekt Gradle / Maven używa M12, będziesz mieć problemy dokładnie tak, jak opisałeś. Więc sprawdź, czy wszystko się zgadza.

Jeśli nadal masz problemy, w przypadku niektórych starszych wtyczek musisz wyczyścić pamięci podręczne w Intellij IDEA (menu plików, Wyczyść pamięci podręczne i uruchom ponownie, wybierz opcję ponownego uruchomienia).

Jayson Minard
źródło
Połączenie czyszczenia pamięci podręcznych, aktualizacji Android Studio i wtyczki Kotlin naprawiło to za mnie. Dziękuję
user1405990
Witam ponownie, ze jakiś czas rozważyć rzeczy i trochę Kotlin google-ing - Nie sądzę, że przyczyną jest tutaj w plugin-ów per se . println znajduje się w pakiecie kotlin.io . JAR Kotlin-stdlib zawiera plik „kotlin.io”. Więc nie ma problemu na powierzchni. I wyraźnie włączone kotlin.io * - Result.: Unresolved reference: io. Jako archiwum JAR, uchwała referencyjna powinna dotyczyć rzeczy przedszkolnych. Więc co tam!??
będzie
Jestem z powrotem ... Netbeans ludzie mogą również „fix” to - kropla cache NetBeans użytkownika. Możesz zobaczyć lokalizację katalogu pamięci podręcznej Netbeans, klikając pole Pomoc / Informacje. Wyczyść - Zatrzymaj Netbeans - Upuść pamięć podręczną - Uruchom ponownie Netbeans - Przebuduj! Volia .
będzie
Jeśli widzisz ten problem tylko w pliku kompilacji Gradle, ale nie w plikach źródłowych projektu, może to pomóc: discuss.kotlinlang.org/t/ ...
AlexO
25

Jeśli ktoś się na to natknie i NIGDY Invalidate Cache aniUpdate Kotlin's Version pracy:

1) Po pierwsze, upewnij się, że możesz go zbudować spoza środowiska IDE. Jeśli używasz gradlena przykład:

gradle clean build

Jeśli wszystko pójdzie dobrze, praca w Twoim środowisku jest dobra Kotlin.

2) Aby naprawić kompilację IDE, wypróbuj następujące rozwiązania :

Struktura projektu -> {Wybierz moduł} -> Kotlin -> FIX

Zgodnie z sugestią członka JetBrain tutaj: https://discuss.kotlinlang.org/t/intellij-kotlin-project-screw-up/597

vinitius
źródło
13
Używam Android Studio. Nie mam opcji „Kotlin” w strukturze mojego projektu> moduły. Jakieś pomysły?
AutonomousApps
4
nawet nie widzę tej opcji kotlin po wybraniu modułów ... używając intellij przedsiębiorstwa, a kotlin jest najwyraźniej już skonfigurowany, kiedy klikam narzędzia -> kotlin -> configure
heug
23

W moim przypadku była to źle skonfigurowana instancja IntelliJ.

Struktura projektu -> SDK -> Usuń i ponownie dodaj Java SDK

Martín Coll
źródło
To był mój problem po usunięciu OpenJDK i zainstalowaniu Oracle JDK. Dzięki.
Patrik Stas
To rozwiązało mój problem z IntelliJ 2019.3 i OpenJDK 11. Musiałem tylko usunąć i ponownie dodać SDK.
z11i
10

Wpadłem na ten problem. Musiałem dodać następujące elementy do mojego build.grade:

apply plugin: 'kotlin-android'

Nacięcie
źródło
8

Ok, byłem tu kilka razy i nie do końca jestem pewien, jak i dlaczego tak się dzieje, ale czytanie sugeruje, że jest to niezgodność Kotlin / JVM. Wypróbowałem wiele rzeczy wymienionych na tej stronie, ale nie bez całkowitego sukcesu. To był rodzaj symptomu, który IDE wyświetlał w panelu komunikatów po próbie uruchomienia testów przez IDE. Jednak panel kodu nie ma czerwonych linii wskazujących, że nie można znaleźć ani zaimportować modułów ani nic nie w porządku.

wprowadź opis obrazu tutaj

Mój projekt (w momencie pisania tego) to projekt klasy 4.10.2 kotlin 1.3 w IntelliJ (IntelliJ IDEA 2018.2.5 (Ultimate Edition) Build # IU-182.4892.20, zbudowany 16 października 2018)

Na początek jednak unieważniłem pamięci podręczne i uruchomiłem ponownie. Następnie uruchomiono gradle clean build. Po przebudowie projekt nadal nie ma radości. Wszedłem do ustawień projektu i zauważyłem, że wersje kompilatora nie są ustawione na java 8, ustawiłem wersję Compiler / Kotlin / Target JVM i Compiler / Java / Project Byte Code na 1.8 / 8 (patrz poniżej), a następnie przeprowadziłem testy w IDE i wracamy do pracy! Odniesienia rozwiązane w moim przypadku.

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj

Opentuned
źródło
Miałem podobny problem, ale musiałem też zmienić moduły modułów na odpowiednią docelową wersję JVM
Jake Walsh,
4

Dla mnie było to spowodowane brakiem bibliotek Gradle Libraries w strukturze projektu.

Po prostu dodaj build.gradle: apply plugin: 'idea'

A potem biegnij: $ gradle idea

Po tym gradle odbuduje biblioteki zależności i referencje zostaną rozpoznane!

R Lu
źródło
Ten jest pomocny i działał z powodu braku bibliotek klas
Kaushik Burkule
3

Możliwym rozwiązaniem dla samodzielnych projektów Kotlin jest jawne dołączenie standardowych bibliotek Kotlin do projektu głównego.

Aby to zrobić w IntelliJ IDEA:

  • naciśnij Ctrl + Shift + A (Wyszukaj akcje lub opcje)
  • wpisz "Konfiguruj kotlin w projekcie" i pozwól, aby zawierał standardowe biblioteki
Antonio Martinović
źródło
3

Mój problem został rozwiązany przez dodanie kotlinnastępujących

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 (czysty kotlin)

Mój błąd został wyrzucony tutaj, ponieważ Android Studio tworzy mój moduł domeny jako czysty moduł Java i zastosowałem wtyczkę jako java, a ja użyłem go w moim module prezentacji, który jest modułem Android / Kotlin

Android Studio znajduje i importuje ścieżkę pakietu, ale niezgodność nie pozwala na kompilację.

Wystarczy zdjąć apply plugin: 'java'i przełączyć na kotlin w następujący sposób

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 {
    ..
}

Myślę, że to będzie pomocne

Abner Escócio
źródło
1

Miał to samo z IDEA 14.1.5, Kotlin v.1.0.0-beta-1038-IJ141-17.
Kotlin otrzymuje swój własny wpis na liście (jak Java) podczas tworzenia nowego projektu, ale jedyna działająca konfiguracja to:

Nowy | Projekt | Java | „Kotlin (Java)” (upewnij się, że masz skonfigurowany Project SDK)
użyj biblioteki: Utwórz, „Kopiuj do: lib”.

kaay
źródło
1

Próbowałem wszystkiego: wyczyść foldery kompilacji, uruchom gradle clean build, wykonaj AS unieważnij pamięć podręczną (x2), ponownie zainstaluj wtyczkę Kotlin, zrestartuj komputer.

Ale w końcu po zrobieniu tego wszystkiego nadal nie działało, ale również usunięcie z projektu build.gradletej linii apply plugin: 'kotlin-android-extensions':, gradle sync, a następnie ponowne dodanie zadziałało

Ultimo_m
źródło
1

Otrzymałem również ten błąd, ale rozwiązałem to, korzystając z poniższej koncepcji.

  1. Uruchom ponownie edycję społecznościową intellij idea.
  2. Następnie przejdź do prawego rogu, aby ustawić konfigurację dla java.

wprowadź opis obrazu tutaj

  1. wybierz ustawienia konfiguracji dla wszystkich modułów. następnie ponownie uruchom kod. To będzie działać.

Ten błąd występuje z powodu nieprawidłowej konfiguracji języka Java.

savigya singh
źródło
2
Przykro mi, ale 2. nie jest jasne. Nie mogłem znaleźć „prawego rogu”
Deunz
1

Czasami może się to zdarzyć, ponieważ próbujesz użyć projektu z niekompatybilnymi wersjami wtyczki Kotlin w Gradle z wtyczką w swoim IDE. Sprawdź wersje org.jetbrains.kotlin.jvm i innych wtyczek Kotlin w build.gradle oraz wersję zainstalowanej wtyczki kotlin w swoim IDE i spróbuj zrobić to podobnie:

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj

Arkady
źródło
0

Przydarzyło mi się dzisiaj.

Mój problem polegał na tym, że miałem otwartych zbyt wiele kart (nie wiedziałem, że są otwarte) z kodem źródłowym.

Jeśli zamkniesz wszystkie karty, być może uda ci się rozmylić IntelliJ z poprawnym indeksowaniem zależności

LeoColman
źródło
Właściwie to ma sens, powodem, dla którego otrzymujesz wynik -ngt, jest to, że nie wyjaśniłeś tego dobrze. Jeśli some1 ma dwa otwarte projekty w IDE, powiedzmy jeden z Gradle i jeden z Maven; uruchomienie jednego z projektów może doprowadzić do nierozwiązanego odwołania.
HA S
0

Unieważnienie pamięci podręcznych i aktualizacja wtyczki Kotlin w Android Studio załatwiały sprawę.

André Ramon
źródło
0

Miałem ten problem, ponieważ próbowałem ustawić konfiguracje bibliotek wieloplatformowych.

Usunąłem wszystkie zestawy źródłowe wraz z ich zależnościami z pliku „build.gradle”, ale zachowałem „wspólny” zestaw źródeł.

Natywny działał dobrze, ale maszyna JVM nie była w stanie zbudować i pokazała błąd.

Ostatecznie rozwiązaniem było nie usuwanie zbioru źródłowego maszyny JVM ani jej zależności

Alaa Sbateen
źródło
0

Kolejną rzeczą, którą chciałbym dodać, jest to, że musisz wybrać View -> Tool Windows -> Gradle zanim będziesz mógł uruchomić projekt za pomocą Gradle.

Jeśli używasz Gradle, projekt buduje się i działa normalnie, ale używając IntelliJ tak nie jest, to może rozwiązać problem.

jairhumberto
źródło
0

Miałem ten problem, ponieważ linter drukował, że mój obiekt był wystąpieniem, Foopodczas gdy kompilator nie mógł zdefiniować jego typu i uznać, że jest to Anyobiekt podobny do obiektu (w moim przypadku był bardziej złożony, linter pokazuje błąd w poniższym kodzie, ale pomysł jest tutaj):

    class Foo {
        val bar: Int = 0
    }

    fun test(): Any {
        return Foo()
    }

    val foo = test()
    foo.bar // <-- Linter consider that foo is an Instance of Foo but not the compiler because it's an Any object so it show the error at compilation.

Aby to naprawić, musiałem rzucić mój obiekt:

val foo = test() as Foo
Bubu
źródło
0

Sprawdź i zainstaluj aktualizacje Android Studio. To rozwiązuje problem.

wprowadź opis obrazu tutaj

user2912087
źródło
-1

Czasami w podobnych sytuacjach (nie sądzę, że to twój problem, ponieważ twoja sprawa jest bardzo prosta) warto sprawdzić pakiet plików kotlin.

Jeśli masz plik Kotlin w tym samym pakiecie i umieściłeś tam kilka klas i przegapiłeś deklarację pakietu, wygląda to w IntelliJ, że masz klasy w tym samym pakiecie, ale bez definicji pakietu, IntelliJ pokazuje:

Błąd: (5, 5) Kotlin: Nierozwiązane odniesienie: ...

Przemek Nowak
źródło
-1

Najprostsze rozwiązanie:

Narzędzia-> Kotlin-> Konfiguruj Kotin w projekcie

Głosuj za, jeśli uznany za Przydatny.

Shivam Gaba
źródło
Nic nie robi: wszystkie moduły z plikami Kotlin są skonfigurowane
Deunz