Referensi Kotlin yang belum terselesaikan di IntelliJ


93

Saya memulai dengan tutorial untuk mempelajari Kotlin di IntelliJ. Saat saya mencoba menjalankan contoh yaitu

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

Eksekusi ditangguhkan dengan pesan Error:(5, 5) Kotlin: Unresolved reference: println ini Ini adalah pertama kalinya saya menggunakan IntelliJ. Saya juga belum pernah mengerjakan Javaproyek. Apakah saya melewatkan sesuatu?

Sunting: Saya sudah melihat pertanyaan lain. Jawabannya tidak valid untuk situasi saya.


Versi Intellij IDEA? Versi plugin Kotlin apa yang diinstal?
D3xter

Opsi mana yang Anda pilih dalam dialog waktu proses Kotlin?
yole

Saya baru saja menginstalnya kemarin.
IDE

Ya, saya juga mendapatkan ini pada contoh "Halo dunia" menggunakan Gradle dan Netbeans. Bangunan gradle berfungsi. Sepertinya ada masalah plug-in dengan Netbeans juga. Sayangnya tidak ada pembaruan terkini untuk plugin Netbeans
akan

Jawaban:


92

Plugin Intellij IDEA Anda dan runtime / compiler Kotlin yang Anda gunakan dalam proyek harus cocok. Misalnya, jika plugin IDE adalah Beta 1, tetapi proyek Gradle / Maven Anda menggunakan M12, Anda akan mengalami masalah persis seperti yang dijelaskan. Jadi periksa apakah semuanya berbaris.

Jika Anda masih mengalami masalah, dengan beberapa plugin yang lebih lama Anda perlu menghapus cache di Intellij IDEA (menu file, Hapus Cache dan Mulai Ulang, pilih opsi untuk memulai ulang).


Kombinasi membersihkan cache, memperbarui studio android, dan plugin kotlin memperbaikinya untuk saya. Terima kasih
pengguna1405990

Hai lagi, dengan beberapa waktu untuk mempertimbangkan hal-hal dan sedikit Kotlin google-ing - Saya rasa penyebabnya di sini adalah IN plugin itu sendiri . println ada dalam paket kotlin.io . Kotlin-stdlib JAR memiliki "kotlin.io" di sana. Jadi tidak ada masalah di permukaan. Saya secara eksplisit termasuk kotlin.io * - Hasil.: Unresolved reference: io. Sebagai arsip JAR, resolusi referensi harus menjadi TK barang-barang. Jadi ada apa!??
akan

Aku kembali ... Orang Netbeans juga dapat 'memperbaiki' ini - Jatuhkan cache pengguna netbeans. Anda dapat melihat lokasi direktori cache Netbeans dengan mengklik kotak Help / About. Bersihkan - Hentikan Netbeans - Jatuhkan cache - mulai ulang Netbeans - bangun kembali! Volia .
akan

Jika Anda melihat masalah ini hanya di file build Gradle tetapi bukan file sumber proyek, ini dapat membantu: diskusikan.kotlinlang.org/t/…
AlexO

25

Jika ada yang menemukan ini dan TIDAK Invalidate Cache atau Update Kotlin's Versionbekerja:

1) Pertama, pastikan Anda dapat membangunnya dari luar IDE. Jika Anda menggunakan gradle, misalnya:

gradle clean build

Jika semuanya berjalan dengan baik, maka lingkungan Anda baik untuk diajak bekerja sama Kotlin.

2) Untuk memperbaiki build IDE, coba yang berikut ini :

Struktur Proyek -> {Pilih Modul} -> Kotlin -> FIX

Seperti yang disarankan oleh anggota JetBrain di sini: https://discuss.kotlinlang.org/t/intellij-kotlin-project-screw-up/597


13
Saya menggunakan Android Studio. Saya tidak memiliki opsi "Kotlin" dalam struktur proyek> modul saya. Ada ide?
AutonomousApps

4
bahkan tidak melihat opsi kotlin ini setelah memilih modul ... menggunakan enterprise intellij, dan kotlin tampaknya sudah dikonfigurasi ketika saya mengklik alat -> kotlin -> konfigurasi
heug

23

Dalam kasus saya, itu adalah instance IntelliJ yang salah dikonfigurasi.

Struktur Proyek -> SDK -> Hapus dan tambahkan Java SDK lagi


Ini adalah masalah saya setelah menghapus OpenJDK dan menginstal Oracle JDK. Terima kasih.
Patrik Stas

Ini telah memecahkan masalah saya di IntelliJ 2019.3 dan OpenJDK 11. Saya hanya perlu menghapus dan menambahkan SDK lagi.
z11i

10

Mengalami masalah ini. Saya harus menambahkan yang berikut ini ke build.grade saya:

apply plugin: 'kotlin-android'


8

Oke, saya sudah di sini beberapa kali dan tidak sepenuhnya yakin bagaimana atau mengapa ini terjadi tetapi membaca menunjukkan ketidakcocokan Kotlin / JVM. Saya telah mencoba beberapa hal yang disebutkan di halaman ini tetapi bukannya tidak berhasil. Ini adalah jenis gejala yang ditampilkan IDE di panel pesan setelah mencoba menjalankan pengujian melalui IDE. Namun panel kode tidak memiliki garis merah yang menunjukkan bahwa modul tidak dapat ditemukan atau diimpor atau apa pun yang tidak diinginkan.

masukkan deskripsi gambar di sini

Proyek saya (pada saat penulisan ini) adalah proyek gradle 4.10.2 kotlin 1.3 di IntelliJ (IntelliJ IDEA 2018.2.5 (Ultimate Edition) Build # IU-182.4892.20, dibangun pada 16 Oktober 2018)

Sebagai permulaan, saya membatalkan cache dan memulai ulang. Kemudian jalankan build gradle clean. Setelah membangun kembali proyek tersebut masih belum ada kegembiraan. Saya masuk ke pengaturan proyek dan melihat versi kompiler tidak diatur ke java 8, saya menetapkan Versi JVM Compiler / Kotlin / Target dan Kode Byte Compiler / Java / Proyek ke 1.8 / 8 (lihat di bawah), kemudian menjalankan beberapa tes di IDE dan kami kembali berbisnis! Referensi diselesaikan dalam kasus saya.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini


Saya memiliki masalah serupa, tetapi juga harus mengubah modul modul saya ke versi JVM target yang benar
Jake Walsh

4

Bagi saya, itu karena proyek kehilangan Perpustakaan Gradle dalam struktur proyeknya.

Cukup tambahkan build.gradle: apply plugin: 'idea'

Dan kemudian jalankan: $ gradle idea

Setelah itu gradle membangun kembali pustaka dependensi dan referensi dikenali!


Yang ini terbantu dan berfungsi karena perpustakaan gradle hilang
Kaushik Burkule

3

Solusi yang mungkin untuk project Kotlin mandiri adalah dengan menyertakan lib standar Kotlin secara eksplisit di dalam project root.

Untuk melakukan itu di IntelliJ IDEA:

  • tekan Ctrl + Shift + A (Cari tindakan atau opsi)
  • ketik "Configure kotlin in project" dan biarkan itu menyertakan lib standar untuk Anda

3

Masalah saya diselesaikan dengan menambahkan kotlinsebagai berikut

presentasi.gradle (app.gradle)

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android' // here

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

android {
    ...
}

dependencies {
    ...
}

domain.gradle ( kotlin murni)

Kesalahan saya dilemparkan di sini, karena Android Studio membuat modul domain saya sebagai Modul Java murni dan menerapkan plugin sebagai java, dan saya menggunakannya dalam modul presentasi saya yaitu Modul Android / Kotlin

Android Studio menemukan dan mengimpor jalur paket tetapi ketidakcocokan tidak mengizinkan pembuatan.

Hapus saja apply plugin: 'java'dan geser ke kotlin sebagai berikut

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

Saya pikir itu akan membantu


1

Sama halnya dengan IDEA 14.1.5, Kotlin v.1.0.0-beta-1038-IJ141-17.
Kotlin mendapatkan entri daftarnya sendiri (seperti Java) saat membuat proyek baru, tetapi satu-satunya konfigurasi yang berfungsi adalah:

New | Proyek | Jawa | "Kotlin (Java)" (pastikan Anda telah mengonfigurasi Project SDK juga)
gunakan library: Create, "Copy to: lib".


1

Saya mencoba segalanya: bersihkan folder build, jalankan gradle clean build , mengeksekusi cache AS invalidate (x2), menginstal ulang plugin Kotlin, memulai ulang pc.

Tetapi pada akhirnya setelah melakukan semua ini tetap tidak berhasil, tetapi melakukan juga penghapusan dari proyek build.gradlebaris ini apply plugin: 'kotlin-android-extensions':, sinkronisasi gradle dan kemudian menambahkan kembali berfungsi


1

Saya terlalu mendapatkan kesalahan ini, tetapi saya telah menyelesaikannya menggunakan konsep di bawah ini.

  1. Mulai ulang edisi komunitas ide intellij Anda.
  2. Setelah itu, pergi ke pojok kanan untuk mengatur konfigurasi untuk java.

masukkan deskripsi gambar di sini

  1. pilih pengaturan konfigurasi untuk semua modul. lalu jalankan kembali kode tersebut. Ini akan berhasil.

Kesalahan ini terjadi karena tidak mengkonfigurasi java dengan benar.


2
Saya minta maaf tapi 2. tidak jelas. Saya tidak bisa menemukan "pojok kanan"
Deunz

1

Terkadang hal ini bisa terjadi karena Anda mencoba menggunakan project dengan versi plugin Kotlin yang tidak kompatibel di Gradle dengan plugin di IDE Anda. Periksa versi org.jetbrains.kotlin.jvm dan plugin Kotlin lainnya di build.gradle, dan versi plugin kotlin yang terinstal di IDE Anda, dan coba buat serupa:

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini


0

Terjadi pada saya hari ini.

Masalah saya adalah saya memiliki terlalu banyak tab yang terbuka (saya tidak tahu mereka terbuka) dengan kode sumber pada mereka.

Jika Anda menutup semua tab, mungkin Anda akan menghilangkan kebingungan IntelliJ untuk mengindeks dependensi dengan benar


Sebenarnya ini sangat masuk akal, alasan mengapa Anda mendapatkan skor -ngt adalah karena Anda tidak menjelaskannya dengan baik. Jika some1 memiliki dua proyek yang terbuka di IDE, katakanlah satu dengan Gradle dan satu lagi dengan Maven; menjalankan salah satu proyek dapat menyebabkan referensi yang tidak terselesaikan.
HA S

0

Memvalidasi cache dan memperbarui plugin Kotlin di Android Studio berhasil bagi saya.


0

Saya mengalami masalah ini karena saya mencoba menyiapkan konfigurasi pustaka multiplatform.

Saya telah menghapus semua set sumber dengan dependensinya dari file "build.gradle" tetapi tetap mempertahankan set sumber "umum".

Native berfungsi dengan baik tetapi JVM tidak dapat dibangun dan menunjukkan kesalahan Anda.

Pada akhirnya, solusinya adalah tidak menghapus kumpulan Sumber JVM juga tidak dependensinya


0

Hal lain yang ingin saya tambahkan adalah Anda perlu memilih View -> Tool Windows -> Gradle sebelum Anda dapat menjalankan proyek menggunakan Gradle.

Jika menggunakan Gradle, proyek membangun dan berjalan secara normal tetapi tidak menggunakan IntelliJ, maka ini bisa menyelesaikan masalah.


0

Saya mengalami masalah ini karena linter sedang mencetak bahwa objek saya adalah contoh Foosedangkan kompiler tidak dapat menentukan jenisnya dan menganggapnya sebagai Anyobjek seperti (Ini lebih kompleks dalam kasus saya, kesalahan tampilan linter dalam kode di bawah ini tetapi Ide ada di sini):

    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.

Untuk memperbaikinya saya harus melemparkan objek saya:

val foo = test() as Foo


-1

Kadang-kadang dalam situasi serupa (menurut saya itu bukan masalah Anda karena kasus Anda sangat sederhana) ada baiknya untuk memeriksa paket file kotlin.

Jika Anda memiliki file Kotlin dalam paket yang sama dan meletakkan beberapa kelas di sana dan melewatkan deklarasi paket, maka akan terlihat di dalam IntelliJ bahwa Anda memiliki kelas dalam paket yang sama tetapi tanpa definisi paket, IntelliJ menunjukkan kepada Anda:

Error: (5, 5) Kotlin: Referensi belum terselesaikan: ...


-1

Solusi Paling Sederhana:

Tools-> Kotlin-> Konfigurasi Kotin di Project

Beri suara positif jika ditemukan Berguna.


Tidak melakukan apa-apa: Semua modul dengan file Kotlin dikonfigurasi
Deunz
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.