Tham chiếu Kotlin chưa được giải quyết trong IntelliJ


93

Tôi đã bắt đầu với hướng dẫn học Kotlin trong IntelliJ. Khi tôi thử chạy ví dụ, tức là

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

Error:(5, 5) Kotlin: Unresolved reference: println Quá trình thực thi bị tạm dừng với thông báo này Đây là lần đầu tiên tôi sử dụng IntelliJ, tôi cũng chưa bao giờ làm việc trong một Javadự án. Tôi có thiếu điều gì không?

Chỉnh sửa: Tôi đã xem câu hỏi kia rồi. Câu trả lời không hợp lệ cho tình huống của tôi.


Phiên bản Intellij IDEA? Phiên bản plugin Kotlin nào được cài đặt?
D3xter

Bạn đã chọn tùy chọn nào trong hộp thoại thời gian chạy Kotlin?
yole

Tôi chỉ cần cài đặt nó yesterday.IDEA là 14.1 và mới nhất Kotlin cũng
Anony-chuột

Có Tôi cũng nhận được điều này trên ví dụ "Hello world" bằng cách sử dụng Gradle và Netbeans. Các công trình xây dựng gradle. Tôi có vẻ như cũng có vấn đề với trình cắm với Netbeans. Than ôi, không có bản cập nhật nào gần đây cho plugin Netbeans
sẽ

Câu trả lời:


92

Plugin Intellij IDEA của bạn và trình biên dịch / thời gian chạy Kotlin mà bạn sử dụng trong dự án cần phải khớp với nhau. Ví dụ: nếu plugin IDE là Beta 1, nhưng dự án Gradle / Maven của bạn sử dụng M12, bạn sẽ gặp sự cố chính xác như bạn đã mô tả. Vì vậy, hãy kiểm tra xem mọi thứ đều thẳng hàng.

Nếu bạn vẫn gặp sự cố, với một số plugin cũ hơn, bạn cần xóa bộ nhớ đệm trong Intellij IDEA (menu tệp, Xóa bộ nhớ đệm và Khởi động lại, chọn tùy chọn để khởi động lại).


Sự kết hợp giữa xóa bộ nhớ đệm, cập nhật android studio và plugin kotlin đã khắc phục sự cố cho tôi. Cảm ơn bạn
user1405990

Hi một lần nữa, với một thời gian để xem xét các công cụ và một chút của Kotlin google-ing - Tôi không nghĩ rằng nguyên nhân ở đây là trong Plugin-s cho mỗi gia nhập . println nằm trong gói kotlin.io . Kotlin-stdlib JAR có "kotlin.io" trong đó. Vì vậy, không có vấn đề trên bề mặt. Tôi rõ ràng bao gồm kotlin.io * - quả.: Unresolved reference: io. Là một kho lưu trữ JAR, độ phân giải tham chiếu phải là nội dung mẫu giáo. Sao, có chuyện gì!??
sẽ

Tôi đã trở lại ... Mọi người Netbeans cũng có thể 'sửa chữa' điều này - Thả bộ nhớ cache của người dùng netbeans. Bạn có thể xem vị trí của thư mục bộ đệm Netbeans bằng cách nhấp vào hộp Trợ giúp / Giới thiệu. Dọn dẹp - Dừng Netbeans - Bỏ bộ nhớ cache - khởi động lại Netbeans - xây dựng lại! Volia .
sẽ

Nếu bạn chỉ gặp sự cố này trong tệp bản dựng Gradle của mình mà không phải tệp nguồn dự án, thì điều này có thể giúp ích: thảo luận.kotlinlang.org/t/
AlexO

25

Nếu bất cứ ai tình cờ gặp phải điều này và KHÔNG CÒN Invalidate Cache hoặc Update Kotlin's Versionlàm việc:

1) Đầu tiên, hãy đảm bảo rằng bạn có thể xây dựng nó từ bên ngoài IDE. gradleVí dụ: nếu bạn đang sử dụng :

gradle clean build

Nếu mọi thứ suôn sẻ, thì môi trường của bạn đều tốt để làm việc Kotlin.

2) Để khắc phục bản dựng IDE, hãy thử cách sau :

Cấu trúc dự án -> {Chọn Mô-đun} -> Kotlin -> SỬA

Theo đề xuất của thành viên JetBrain tại đây: https://discuss.kotlinlang.org/t/intellij-kotlin-project-screw-up/597


13
Tôi đang sử dụng Android Studio. Tôi không có tùy chọn "Kotlin" trong cấu trúc dự án> mô-đun của mình. Có ý kiến ​​gì không?
AutonomousApps

4
thậm chí không nhìn thấy tùy chọn Kotlin này sau khi chọn mô-đun ... sử dụng IntelliJ doanh nghiệp, và Kotlin được rõ ràng đã được cấu hình khi tôi nhấp vào công cụ -> Kotlin -> configure
heug

23

Trong trường hợp của tôi, đó là một phiên bản IntelliJ được định cấu hình sai.

Cấu trúc dự án -> SDK -> Xóa và thêm lại Java SDK


Đây là vấn đề của tôi sau khi gỡ bỏ OpenJDK và cài đặt Oracle JDK. Cảm ơn.
Patrik Stas

Điều này đã giải quyết được sự cố của tôi trên IntelliJ 2019.3 và OpenJDK 11. Tôi chỉ phải xóa và thêm lại SDK.
z11i

10

Ran vào vấn đề này. Tôi đã phải thêm phần sau vào build.grade của mình:

apply plugin: 'kotlin-android'


8

Ok, tôi đã ở đây một vài lần và không hoàn toàn chắc chắn về cách thức hoặc lý do tại sao điều này xảy ra nhưng việc đọc cho thấy nó không khớp Kotlin / JVM. Tôi đã thử một số điều được đề cập trên trang này nhưng không phải là không thành công hoàn toàn. Đây là loại triệu chứng IDE hiển thị trong bảng thông báo sau khi cố gắng chạy các bài kiểm tra thông qua IDE. Tuy nhiên, bảng mã không có dòng màu đỏ cho biết rằng không thể tìm thấy hoặc nhập các mô-đun hoặc bất kỳ thứ gì chưa được cấp phép.

nhập mô tả hình ảnh ở đây

Dự án của tôi (tại thời điểm viết bài này) là dự án gradle 4.10.2 kotlin 1.3 trong IntelliJ (IntelliJ IDEA 2018.2.5 (Ultimate Edition) Build # IU-182.4892.20, được xây dựng vào ngày 16 tháng 10 năm 2018)

Đối với những người mới bắt đầu, tôi đã vô hiệu hóa bộ nhớ đệm và khởi động lại. Sau đó, chạy một bản dựng sạch gradle. Sau khi xây dựng lại dự án vẫn không có niềm vui. Tôi đã đi vào cài đặt dự án và nhận thấy các phiên bản trình biên dịch không được đặt thành java 8, tôi đặt Phiên bản biên dịch / Kotlin / Target JVM và Trình biên dịch / Java / Project Byte Code thành 1.8 / 8 (xem bên dưới), sau đó chạy một số thử nghiệm trong IDE và chúng tôi đã hoạt động trở lại! Tài liệu tham khảo được giải quyết trong trường hợp của tôi.

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


Tôi đã có một vấn đề tương tự, nhưng cũng đã phải thay đổi module module của tôi với phiên bản tiêu JVM đúng
Jake Walsh

4

Đối với tôi, đó là do dự án thiếu Thư viện Gradle trong cấu trúc dự án của nó.

Chỉ cần thêm vào build.gradle: apply plugin: 'idea'

Và sau đó chạy: $ gradle idea

Sau đó gradle xây dựng lại các thư viện phụ thuộc và các tham chiếu được công nhận!


Cái này được giúp đỡ và hoạt động do thiếu thư viện gradle
Kaushik Burkule

3

Một giải pháp khả thi cho các dự án Kotlin độc lập là bao gồm các libs tiêu chuẩn Kotlin rõ ràng bên trong dự án gốc.

Để làm điều đó trong IntelliJ IDEA:

  • nhấn Ctrl + Shift + A (Hành động hoặc tùy chọn tìm kiếm)
  • nhập "Định cấu hình kotlin trong dự án" và để nó bao gồm các lib tiêu chuẩn cho bạn

3

Vấn đề của tôi đã được giải quyết bằng cách thêm kotlinnhư sau

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 ( kotlin tinh khiết)

Lỗi của tôi được đưa ra ở đây, vì Android Studio tạo mô-đun miền của tôi dưới dạng Mô-đun Java thuần túy và áp dụng plugin dưới dạng java và tôi đã sử dụng nó trong mô-đun bản trình bày của mình là Mô-đun Android / Kotlin

Android Studio tìm và nhập đường dẫn của gói nhưng sự không tương thích không cho phép xây dựng.

Chỉ cần xóa apply plugin: 'java'và chuyển sang kotlin như sau

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

Tôi nghĩ rằng nó sẽ hữu ích


1

Tương tự với IDEA 14.1.5, Kotlin v.1.0.0-beta-1038-IJ141-17.
Kotlin có mục nhập danh sách của riêng nó (như Java) khi tạo dự án mới, nhưng cấu hình hoạt động duy nhất là:

New | Dự án | Java | "Kotlin (Java)" (đảm bảo rằng bạn cũng đã định cấu hình Project SDK)
sử dụng thư viện: Create, "Copy to: lib".


1

Tôi đã thử mọi thứ: dọn dẹp thư mục xây dựng, chạy gradle clean build, thực thi AS làm mất hiệu lực bộ đệm ẩn (x2), cài đặt lại plugin Kotlin, khởi động lại máy tính.

Nhưng cuối cùng sau khi làm tất cả điều này nó vẫn không hoạt động, nhưng thực hiện xóa khỏi dự án build.gradlecủa dòng này apply plugin: 'kotlin-android-extensions':, đồng bộ hóa gradle và sau đó thêm lại hoạt động


1

Tôi đã quá nhận được lỗi này, nhưng tôi đã giải quyết vấn đề này bằng cách sử dụng khái niệm bên dưới.

  1. Khởi động lại ấn bản cộng đồng ý tưởng intellij của bạn.
  2. Sau đó, bạn vào góc bên tay phải để thiết lập cấu hình cho java.

nhập mô tả hình ảnh ở đây

  1. chọn cài đặt cấu hình cho tất cả các mô-đun. sau đó chạy lại mã. Nó sẽ hoạt động.

Lỗi này xảy ra do không cấu hình java đúng cách.


2
Tôi xin lỗi nhưng 2. không rõ ràng. Tôi không thể tìm thấy "góc bên phải"
Deunz

1

Đôi khi điều này có thể xảy ra vì bạn đang cố gắng sử dụng một dự án có phiên bản không tương thích của plugin Kotlin trong Gradle với plugin trong IDE của bạn. Kiểm tra các phiên bản của org.jetbrains.kotlin.jvm và các plugin Kotlin khác trong build.gradle và phiên bản của plugin kotlin đã cài đặt trong IDE của bạn và cố gắng làm cho nó tương tự:

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


0

Đã xảy ra với tôi ngày hôm nay.

Vấn đề của tôi là tôi đã mở quá nhiều tab (tôi không biết chúng đang mở) với mã nguồn trên chúng.

Nếu bạn đóng tất cả các tab, có thể bạn sẽ không sử dụng IntelliJ để lập chỉ mục các phần phụ thuộc một cách chính xác


Trên thực tế, điều này hoàn toàn có lý, lý do tại sao bạn nhận được điểm -ngt là vì bạn đã giải thích nó không tốt. Nếu some1 có hai dự án đang mở trong IDE, giả sử một dự án với Gradle và một với Maven; chạy một trong các dự án có thể dẫn đến tham chiếu chưa được giải quyết.
HA S

0

Việc vô hiệu hóa bộ nhớ đệm và cập nhật plugin Kotlin trong Android Studio đã thực hiện thủ thuật cho tôi.


0

Tôi gặp sự cố này vì tôi đang cố gắng thiết lập cấu hình thư viện đa dạng.

Tôi đã xóa tất cả các bộ nguồn có phụ thuộc của chúng khỏi tệp "build.gradle" nhưng vẫn giữ bộ nguồn "chung".

Gốc đã hoạt động tốt nhưng JVM không thể tạo và hiển thị lỗi của bạn.

Cuối cùng, giải pháp là không xóa tập hợp Nguồn của JVM cũng không phải là phụ thuộc của nó


0

Một điều nữa tôi muốn bổ sung là bạn cần chọn View -> Tool Windows -> Gradle trước khi có thể chạy dự án bằng Gradle.

Nếu sử dụng Gradle, dự án xây dựng và chạy bình thường nhưng sử dụng IntelliJ thì không, thì điều này có thể giải quyết vấn đề.


0

Tôi gặp sự cố này bởi vì linter đang in rằng đối tượng của tôi là một phiên bản Footrong khi trình biên dịch không thể xác định kiểu của nó và coi đó là một Anyđối tượng như thế nào (Trong trường hợp của tôi, linter hiển thị lỗi trong mã bên dưới nhưng ý tưởng ở đây):

    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.

Để khắc phục, tôi phải ép đối tượng của mình:

val foo = test() as Foo


-1

Đôi khi trong những tình huống tương tự (tôi không nghĩ đó là vấn đề của bạn vì trường hợp của bạn rất đơn giản), bạn nên kiểm tra gói tệp kotlin.

Nếu bạn có tệp Kotlin trong cùng một gói và đặt ở đó một số lớp và bỏ lỡ phần khai báo gói thì bên trong IntelliJ có vẻ như bạn có các lớp trong cùng một gói nhưng không có định nghĩa về gói, IntelliJ sẽ hiển thị cho bạn:

Lỗi: (5, 5) Kotlin: Tham chiếu chưa được giải quyết: ...


-1

Giải pháp đơn giản nhất:

Công cụ-> Kotlin-> Định cấu hình Kotin trong Dự án

Hãy ủng hộ nếu thấy Hữu ích.


Không có gì: Tất cả các mô-đun có tệp Kotlin đã được định cấu hình
Deunz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.