IntelliJ'de Kotlin çözümlenmemiş referans


93

Kotlin'i öğrenmek için öğreticiyle başladım IntelliJ. Örneği çalıştırmayı denediğimde ie

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

Yürütme bu mesajla askıya alındı Error:(5, 5) Kotlin: Unresolved reference: println Bu, IntelliJ'i ilk kez kullanıyorum. Bir Javaproje üzerinde de hiç çalışmadım. Bir şey mi kaçırıyorum?

Düzenleme: Diğer soruyu zaten gördüm, cevap durumum için geçerli değil.


Sürüm Intellij IDEA? Kotlin eklentisinin hangi Sürümü yüklü?
D3xter

Kotlin çalışma zamanı iletişim kutusunda hangi seçeneği seçtiniz?
yole

Daha dün kurdum.IDEA 14.1 idi ve en son Kotlin idi
Anony-mouse

Evet, bunu Gradle ve Netbeans kullanarak "Merhaba dünya" örneğinde de görüyorum. Gradle yapısı çalışıyor. Netbeans ile de bir eklenti problemi gibi görünüyorum. Heyhat eklentisi Netbeans için yakın zamanda güncellemeler olduğunda
olacak

Yanıtlar:


93

Intellij IDEA eklentiniz ve projede kullandığınız Kotlin çalışma zamanı / derleyicisi eşleşmelidir. Örneğin, IDE eklentisi Beta 1 ise, ancak Gradle / Maven projeniz M12 kullanıyorsa, tam olarak açıkladığınız gibi sorunlarla karşılaşacaksınız. Bu yüzden her şeyin hizalı olduğunu kontrol edin.

Hala sorun yaşıyorsanız, bazı eski eklentilerde Intellij IDEA'daki önbellekleri temizlemeniz gerekir (dosya menüsü, Önbellekleri Temizle ve Yeniden Başlat, yeniden başlatma seçeneğini seçin).


Önbellekleri temizleme, android stüdyosunu güncelleme ve kotlin eklentisinin bir kombinasyonu benim için düzeltdi. Teşekkür ederim
user1405990

Merhaba yine bir süre ile malzeme ve Kotlin google-ing biraz düşünün - Burada neden eklenti-ler İÇİNDE olduğunu sanmıyorum haddi zatında . println , kotlin.io paketindedir. Kotlin-stdlib JAR'ın içinde "kotlin.io" var. Yani yüzeyde sorun yok. Ben açıkça kotlin.io dahil * - Sonuç.: Unresolved reference: io. Bir JAR arşiv olarak, referans çözünürlük gerektiğini anaokulu şeyler olmaya. Ee n'aber!??
olacak

Ben geri Bırak netbeans kullanıcı önbellek - NetBeans insanlar saptamak 'bu da yapabilirsiniz .... Yardım / Hakkında kutusuna tıklayarak Netbeans önbellek dizininin konumunu görebilirsiniz. Temizle - Netbeans'i Durdur - Önbelleği bırak - Netbeans'i yeniden başlat - yeniden oluştur! Volia .
olacaktır

Bu sorunu yalnızca Gradle derleme dosyanızda görüyor ancak proje kaynak dosyalarında görmüyorsanız, bu yardımcı olabilir: Discuss.kotlinlang.org/t/…
AlexO

25

Biri buna rastlarsa ve NEITHER Invalidate Cache veya Update Kotlin's Versionçalışmazsa:

1) Öncelikle, IDE'nin dışından inşa edebileceğinizden emin olun. gradleÖrneğin kullanıyorsanız :

gradle clean build

Her şey yolunda giderse, o zaman çevreniz üzerinde çalışmak iyidir Kotlin.

2) IDE yapısını düzeltmek için aşağıdakileri deneyin :

Proje Yapısı -> {Modül Seçin} -> Kotlin -> FIX

Burada bir JetBrain üyesi tarafından önerildiği gibi: https://discuss.kotlinlang.org/t/intellij-kotlin-project-screw-up/597


14
Android Studio kullanıyorum. Proje yapımda> modüllerimde "Kotlin" seçeneğim yok. Herhangi bir fikir?
AutonomousApps

4
modülleri seçtikten sonra bile bu kotlin seçeneğini görmüyorum ... kurumsal intellij kullanıyorum ve kotlin, araçlar -> kotlin -> yapılandır
heug

23

Benim durumumda, yanlış yapılandırılmış bir IntelliJ örneğiydi.

Proje Yapısı -> SDK'lar -> Java SDK'yı kaldırın ve tekrar ekleyin


OpenJDK'yi kaldırdıktan ve Oracle JDK'yı yükledikten sonra sorunum buydu. Teşekkürler.
Patrik Stas

Bu, IntelliJ 2019.3 ve OpenJDK 11'deki sorunumu çözdü. SDK'yı tekrar kaldırıp eklemem gerekti.
z11i

10

Bu sorunla karşılaştım. Build.grade'e aşağıdakileri eklemem gerekiyordu:

apply plugin: 'kotlin-android'


8

Tamam, birkaç kez burada bulundum ve bunun nasıl ve neden olduğundan tam olarak emin değilim, ancak okumak onun Kotlin / JVM uyumsuzluğunu gösteriyor. Bu sayfada bahsedilen birkaç şeyi denedim, ancak tam bir başarı elde etmedim. Bu, IDE aracılığıyla testleri çalıştırmayı denedikten sonra IDE'nin mesaj panelinde görüntülediği türden bir semptomdu. Ancak kod panelinde modüllerin bulunamadığını veya içe aktarılamayacağını veya istenmeyen herhangi bir şeyin olmadığını gösteren kırmızı çizgiler yoktur.

görüntü açıklamasını buraya girin

Projem (bunu yazarken) IntelliJ'de kademeli bir 4.10.2 kotlin 1.3 projesidir (IntelliJ IDEA 2018.2.5 (Ultimate Edition) Build # IU-182.4892.20, 16 Ekim 2018'de inşa edilmiştir)

Yeni başlayanlar için, önbellekleri geçersiz kıldım ve yeniden başlattım. Sonra kademeli temiz bir yapı çalıştırdı. Projeyi yeniden inşa ettikten sonra hala sevinç yok. Proje ayarlarına girdim ve derleyici sürümlerinin java 8 olarak ayarlanmadığını fark ettim, Derleyici / Kotlin / Hedef JVM Sürümü ve Derleyici / Java / Proje Bayt Kodunu 1.8 / 8 olarak ayarladım (aşağıya bakın), sonra bazı testler yaptım IDE ve tekrar iş başındayız! Benim durumumda referanslar çözüldü.

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin


Benzer bir sorun yaşadım, ancak modüllerimi doğru hedef JVM sürümüne değiştirmek zorunda kaldım
Jake Walsh

4

Benim için proje yapısında Gradle Kitaplıklarının eksik olmasından kaynaklanıyordu.

Sadece build.gradle ekleyin: apply plugin: 'idea'

Ve sonra çalıştırın: $ gradle idea

Bundan sonra gradle bağımlılık kitaplıklarını yeniden oluşturur ve referanslar tanınır!


Bu seferki nedeniyle eksik gradle kütüphanelere yardımcı oldu ve çalışılmış
Kaushik Burkule

3

Bağımsız Kotlin projeleri için olası bir çözüm, Kotlin standart kitaplıklarını kök projenin içine açıkça dahil etmektir.

Bunu IntelliJ IDEA'da yapmak için:

  • Ctrl + Shift + A tuşlarına basın (Eylemleri veya seçenekleri arayın)
  • "Projede kotlin'i yapılandır" yazın ve sizin için standart kitaplıklar içermesine izin verin

3

Sorunum kotlinaşağıdaki gibi eklenerek çözüldü

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

Benim hatam buraya atıldı çünkü Android Studio, etki alanı modülümü saf Java Modülü olarak oluşturdu ve eklentiyi java olarak uyguladı ve bunu bir Android / Kotlin Modülü olan sunum modülümde kullandım

Android Studio, paketin yolunu bulur ve içe aktarır, ancak uyumsuzluk derlemeye izin vermez.

Sadece kaldırın apply plugin: 'java've aşağıdaki gibi kotlin'e geçin

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

Yardımcı olacağını düşünüyorum


1

IDEA 14.1.5, Kotlin v.1.0.0-beta-1038-IJ141-17 ile aynıydı.
Kotlin, yeni proje oluştururken kendi liste girişini (Java gibi) alır, ancak çalışan tek yapılandırma şuydu:

Yeni | Proje | Java | "Kotlin (Java)" (Proje SDK'nın da yapılandırıldığından emin olun)
kitaplığı kullanın: Oluştur, "Kopyala: lib".


1

Her şeyi denedim: derleme klasörlerini temizleyin, çalıştırın gradle clean build, önbelleği geçersiz kıl (x2) olarak çalıştırın , Kotlin eklentisini yeniden yükleyin, bilgisayarı yeniden başlatın.

Ama sonunda tüm bunları yaptıktan sonra hala işe yaramadı, ancak aynı zamanda build.gradlebu satırın projesinden de kaldırılıyor :, apply plugin: 'kotlin-android-extensions'kademeli senkronizasyon ve ardından yeniden ekleme işe yaradı


1

Ben de bu hatayı alıyordum, ancak bunu aşağıdaki kavramı kullanarak çözdüm.

  1. İntellij fikir topluluğu sürümünüzü yeniden başlatın.
  2. Bundan sonra, java için yapılandırmayı ayarlamak için sağ köşeye gidin.

görüntü açıklamasını buraya girin

  1. tüm modül için yapılandırma ayarını seçin. sonra kodu yeniden çalıştırın. Çalışacak.

Bu hata, java'nın düzgün yapılandırılmaması nedeniyle oluşur.


2
Üzgünüm ama 2. net değil. "Sağ köşeyi"
bulamadım

1

Bazen bu, Gradle'da Kotlin eklentisinin uyumsuz sürümlerine sahip bir projeyi IDE'nizde eklenti ile kullanmaya çalıştığınız için olabilir. Build.gradle'daki org.jetbrains.kotlin.jvm ve diğer Kotlin eklentilerinin sürümlerini ve IDE'nizde kurulu kotlin eklentisinin sürümünü kontrol edin ve benzer hale getirmeye çalışın:

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin


0

Bugün bana oldu.

Sorunum, çok fazla sekme açmış olmamdı (açık olduklarını bilmiyordum) ve üzerlerinde kaynak kodu vardı.

Tüm sekmeleri kapatırsanız, belki IntelliJ'i bağımlılıkları doğru bir şekilde indekslemek için şaşırtabilirsiniz.


Aslında bu tamamen mantıklı, -ngt puanı almanızın nedeni, bunu iyi açıklamamış olmanızdır. Birinin IDE'de açık iki projesi varsa, diyelim ki biri Gradle ve diğeri Maven ile; projelerden birini yürütmek, çözümlenmemiş referansa yol açabilir.
HA S

0

Önbellekleri geçersiz kılmak ve Android Studio'daki Kotlin eklentisini güncellemek benim için hile yaptı.


0

Bu sorunu yaşadım çünkü çok platformlu bir kitaplık yapılandırmaları oluşturmaya çalışıyordum.

Tüm kaynak kümelerini bağımlılıkları ile birlikte "build.gradle" dosyasından sildim ancak "ortak" kaynak kümesini tuttum.

Yerel iyi çalışıyordu ancak JVM oluşturamadı ve hatanızı gösterdi.

Sonunda çözüm, JVM'nin Kaynak kümesini veya bağımlılıklarını silmemekti.


0

Eklemek istediğim bir diğer şey de, projeyi Gradle'ı kullanarak çalıştırmadan önce Görünüm -> Araç Pencereleri -> Gradle'ı seçmeniz gerektiğidir.

Gradle kullanılıyorsa, proje normal şekilde oluşturulur ve çalışır, ancak IntelliJ kullanılarak çalışmazsa, bu sorunu çözebilir.


0

Bu sorunu yaşadım çünkü linter nesnemin bir örneği olduğunu yazdırıyordu, Foooysa derleyici türünü tanımlayamıyor ve şöyle bir Anynesne olduğunu düşünüyor (Benim durumumda daha karmaşıktı, linter aşağıdaki kodda hata gösteriyor ama fikir burada):

    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.

Düzeltmek için nesnemi yayınlamam gerekiyordu:

val foo = test() as Foo

0

Android Studio Güncellemelerini kontrol edin ve yükleyin. Bu sorunu çözer.

görüntü açıklamasını buraya girin


-1

Bazen benzer durumlarda (senin sorunun olduğunu düşünmüyorum çünkü davan çok basit) kotlin dosya paketini kontrol etmeye değer.

Aynı pakette Kotlin dosyanız varsa ve oraya bazı sınıflar koyduysanız ve paket bildirimini kaçırdıysanız, IntelliJ içinde aynı pakette sınıflarınız olduğuna bakar ancak paket tanımı olmadan IntelliJ size şunları gösterir:

Hata: (5, 5) Kotlin: Çözümlenmemiş referans: ...


-1

En Basit Çözüm:

Araçlar-> Kotlin-> Projede Kotin Yapılandırın

Faydalı bulunursa oy verin.


Hiçbir şey yapmaz: Kotlin dosyalarına sahip tüm modüller yapılandırılır
Deunz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.