IntelliJ의 Kotlin 미해결 참조


93

에서 Kotlin을 배우기위한 튜토리얼 부터 시작 했습니다 IntelliJ.

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

이 메시지와 함께 실행이 중단됩니다 Error:(5, 5) Kotlin: Unresolved reference: println IntelliJ를 사용하는 것은 이번이 처음입니다 Java프로젝트 작업을 한 적이 없습니다.

편집 : 이미 다른 질문 을 보았습니다 . 대답은 내 상황에 유효하지 않습니다.


버전 Intellij IDEA? 어떤 버전의 Kotlin 플러그인이 설치되어 있나요?
D3xter 2015

Kotlin 런타임 대화 상자에서 어떤 옵션을 선택 했나요?
yole

난 그냥 yesterday.IDEA 14.1이었다 설치하고 최신 코 틀린 아니라
Anony 마우스

예, Gradle 및 Netbeans를 사용하는 "Hello world"예제에서도이 정보를 얻고 있습니다. gradle 빌드가 작동합니다. 나는 Netbeans의 플러그인 문제처럼 보입니다. 아아 플러그인 넷빈즈에 대한 최신 업데이트가없는
것이다

답변:


92

Intellij IDEA 플러그인과 프로젝트에서 사용하는 Kotlin 런타임 / 컴파일러가 일치해야합니다. 예를 들어 IDE 플러그인이 베타 1이지만 M12를 사용하는 Gradle / Maven 프로젝트 인 경우 설명한대로 정확하게 문제가 발생합니다. 따라서 모든 것이 정렬되어 있는지 확인하십시오.

여전히 문제가있는 경우 일부 이전 플러그인의 경우 Intellij IDEA에서 캐시를 지워야합니다 (파일 메뉴, 캐시 지우기 및 다시 시작, 다시 시작 옵션 선택).


캐시 지우기, 안드로이드 스튜디오 업데이트 및 kotlin 플러그인의 조합으로 문제가 해결되었습니다. 감사합니다
user1405990

안녕하세요, 잠시 시간을내어 약간의 Kotlin google-ing을 고려합니다. 여기서 원인은 플러그인 자체에 있다고 생각하지 않습니다 . printlnkotlin.io 패키지에 있습니다. Kotlin-stdlib JAR에는 "kotlin.io"가 있습니다. 따라서 표면에 문제가 없습니다. kotlin.io. *를 명시 적으로 포함했습니다. 결과 : Unresolved reference: io. 가 JAR 아카이브로, 참조 해상도 한다고 유치원 물건합니다. 그래서 무슨 일이야! ??
윌 13

다시 드롭 넷빈즈 사용자 캐시 - 넷빈즈 사람들이 '수정'이 수도 있습니다 .... 도움말 / 정보 상자를 클릭하여 Netbeans 캐시 디렉토리의 위치를 ​​볼 수 있습니다. 정리-Netbeans 중지-캐시 삭제-Netbeans 다시 시작-다시 빌드! Volia .
됩니다

당신이 당신의 Gradle을 빌드 파일 만이 아닌 프로젝트 소스 파일을 이러한 문제가 발견 될 경우이 도움이 될 수 : discuss.kotlinlang.org/t/...
AlexO

25

사람이과를 통해 실수를 한단다 경우 측도 Invalidate Cache 또는 Update Kotlin's Version작업 :

1) 먼저 IDE 외부에서 빌드 할 수 있는지 확인하십시오. gradle예를 들어를 사용 하는 경우 :

gradle clean build

모든 것이 잘되면 환경이 모두 잘 작동하는 것입니다 Kotlin.

2) IDE 빌드를 수정하려면 다음을 시도하십시오 .

프로젝트 구조-> {모듈 선택}-> Kotlin-> FIX

JetBrain 회원이 제안한대로 : https://discuss.kotlinlang.org/t/intellij-kotlin-project-screw-up/597


13
Android Studio를 사용하고 있습니다. 내 프로젝트 구조> 모듈에 "Kotlin"옵션이 없습니다. 어떤 아이디어?
AutonomousApps

4
모듈을 선택한 후에도이 kotlin 옵션이 표시되지 않습니다 ... 엔터프라이즈 intellij를 사용하여 도구-> kotlin-> 구성을 클릭하면 kotlin이 이미 구성되어 있습니다
heug

23

제 경우에는 잘못 구성된 IntelliJ 인스턴스였습니다.

프로젝트 구조-> SDK-> Java SDK 제거 및 다시 추가


이것은 OpenJDK를 제거하고 Oracle JDK를 설치 한 후의 문제였습니다. 감사.
Patrik Stas

이로 인해 IntelliJ 2019.3 및 OpenJDK 11에서 문제가 해결되었습니다. SDK를 다시 제거하고 추가해야했습니다.
z11i

10

이 문제가 발생했습니다. 내 build.grade에 다음을 추가해야했습니다.

apply plugin: 'kotlin-android'


8

좋아, 나는 여기에 몇 번 있었고 이것이 어떻게 또는 왜 발생하는지 완전히 확신하지 못했지만 독서는 Kotlin / JVM 불일치를 제안합니다. 나는이 페이지에 언급 된 많은 것들을 시도했지만 완전한 성공이 없었다. 이것은 IDE를 통해 테스트를 실행하려고 시도한 후 IDE가 메시지 패널에 표시하는 일종의 증상이었습니다. 그러나 코드 패널에는 모듈을 찾을 수 없거나 가져올 수 없음을 나타내는 빨간색 선이 없습니다.

여기에 이미지 설명 입력

내 프로젝트 (작성 당시)는 IntelliJ (IntelliJ IDEA 2018.2.5 (Ultimate Edition) 빌드 # IU-182.4892.20, 2018 년 10 월 16 일에 빌드 됨)의 gradle 4.10.2 kotlin 1.3 프로젝트입니다.

하지만 우선 캐시를 무효화하고 다시 시작했습니다. 그런 다음 gradle clean 빌드를 실행했습니다. 프로젝트를 재건 한 후에도 여전히 기쁨이 없습니다. 프로젝트 설정에 들어가서 컴파일러 버전이 Java 8로 설정되지 않았 음을 확인하고 Compiler / Kotlin / Target JVM 버전 및 컴파일러 / Java / Project Byte Code를 1.8 / 8 (아래 참조)로 설정 한 다음 몇 가지 테스트를 실행했습니다. IDE와 우리는 다시 사업을 시작했습니다! 내 경우에 참조가 해결되었습니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력


나는 비슷한 문제를 가지고, 또한 올바른 대상 JVM 버전으로 내 모듈 모듈을 변경했다
제이크 월시을

4

저에게는 프로젝트 구조에서 Gradle 라이브러리가 누락 된 프로젝트 때문이었습니다.

build.gradle을 추가하십시오. apply plugin: 'idea'

그리고 실행 : $ gradle idea

그 후 gradle이 종속성 라이브러리를 다시 빌드하고 참조가 인식됩니다!


이것은 gradle 라이브러리 누락으로 인해 도움을 받고 작동했습니다
Kaushik Burkule

3

독립 실행 형 Kotlin 프로젝트에 대한 가능한 솔루션은 루트 프로젝트 내에 명시 적으로 Kotlin 표준 라이브러리를 포함하는 것입니다.

IntelliJ IDEA에서이를 수행하려면 :

  • Ctrl + Shift + A (검색 작업 또는 옵션)를 누릅니다.
  • "Configure kotlin in project"를 입력하고 표준 라이브러리를 포함하도록합니다.

3

내 문제는 kotlin다음과 같이 추가하여 해결되었습니다.

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)

Android Studio는 내 도메인 모듈을 순수 Java 모듈로 만들고 플러그인을 Java로 적용하고 Android / Kotlin 모듈 인 프레젠테이션 모듈에서 사용했기 때문에 여기에 오류가 발생했습니다.

Android Studio는 패키지 경로를 찾아서 가져 오지만 비 호환성이 빌드를 허용하지 않습니다.

apply plugin: 'java'다음과 같이 제거 하고 kotlin에 swith 하십시오.

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

도움이 될 것이라고 생각합니다


1

IDEA 14.1.5, Kotlin v.1.0.0-beta-1038-IJ141-17과 동일했습니다.
Kotlin은 새 프로젝트를 만들 때 자체 목록 항목 (예 : Java)을 가져 오지만 유일한 구성은 다음과 같습니다.

New | 프로젝트 | 자바 | "Kotlin (Java)"(프로젝트 SDK도 구성되어 있는지 확인)
사용 라이브러리 : Create, "Copy to : lib".


1

나는 모든 것을 시도했다 : 클린 빌드 폴더, 실행 gradle clean build, AS 무효화 캐시 (x2), Kotlin 플러그인 재설치, PC 다시 시작.

그러나 결국이 모든 작업을 수행 한 후에도 여전히 작동하지 않았지만 build.gradle이 줄의 프로젝트에서 제거 : apply plugin: 'kotlin-android-extensions', gradle sync 및 다시 추가가 작동했습니다.


1

이 오류가 너무 발생했지만 아래 개념을 사용하여이 문제를 해결했습니다.

  1. 인텔 리즈 아이디어 커뮤니티 에디션을 다시 시작하십시오.
  2. 그 후 오른쪽 모서리로 이동하여 java에 대한 구성을 설정하십시오.

여기에 이미지 설명 입력

  1. 모든 모듈에 대한 구성 설정을 선택합니다. 그런 다음 코드를 다시 실행하십시오. 작동합니다.

이 오류는 Java를 올바르게 구성하지 않았기 때문에 발생합니다.


2
미안하지만 2. 명확하지 않습니다. "오른쪽 모서리"를 찾을 수 없습니다
Deunz

1

때로는 IDE의 플러그인과 함께 Gradle에서 호환되지 않는 버전의 Kotlin 플러그인이있는 프로젝트를 사용하려고하기 때문에 이런 일이 발생할 수 있습니다. build.gradle에서 org.jetbrains.kotlin.jvm 및 기타 Kotlin 플러그인의 버전과 IDE에 설치된 kotlin 플러그인의 버전을 확인하고 유사하게 만드세요.

여기에 이미지 설명 입력

여기에 이미지 설명 입력


0

오늘 나에게 일어났다.

내 문제는 소스 코드가있는 탭이 너무 많이 열려 있다는 것입니다 (열려있는 줄 몰랐습니다).

모든 탭을 닫으면 IntelliJ를 혼동하여 종속성을 올바르게 색인화 할 수 있습니다.


실제로 이것은 총체적으로 말이됩니다. -ngt 점수를받는 이유는 잘 설명하지 않았기 때문입니다. some1이 IDE에서 두 개의 프로젝트를 연 경우 Gradle과 Maven을 사용한다고 가정 해 보겠습니다. 프로젝트 중 하나를 실행하면 확인되지 않은 참조가 발생할 수 있습니다.
HA S

0

캐시를 무효화하고 Android Studio에서 Kotlin 플러그인을 업데이트하는 것이 저에게 트릭이었습니다.


0

다중 플랫폼 라이브러리 구성을 설정하려고했기 때문에이 문제가 발생했습니다.

"build.gradle"파일에서 종속성이있는 모든 소스 세트를 삭제했지만 "공통"소스 세트는 유지했습니다.

네이티브가 제대로 작동했지만 JVM이 빌드 할 수없고 오류가 표시되었습니다.

결국 해결책은 JVM의 소스 세트를 삭제하지 않고 종속성도


0

추가하고 싶은 또 다른 점 은 Gradle을 사용하여 프로젝트를 실행하기 전에 View-> Tool Windows-> Gradle 을 선택해야한다는 것 입니다.

Gradle을 사용하면 프로젝트가 정상적으로 빌드되고 실행되지만 IntelliJ를 사용하면 그렇지 않은 경우 문제를 해결할 수 있습니다.


0

나는 linter가 내 객체가 인스턴스라는 것을 인쇄하고 있었기 때문에 Foo컴파일러가 그 유형을 정의 할 수 없었고 그것이 Any객체 라고 생각 했기 때문에이 문제가 발생 했습니다 (내 경우에는 더 복잡했습니다, 아래 코드에서 linter show 오류가 발생했지만 아이디어가 여기에 있습니다) :

    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.

이 문제를 해결하려면 내 개체를 캐스팅해야했습니다.

val foo = test() as Foo

0

Android Studio 업데이트를 확인하고 설치합니다. 이것은 문제를 해결합니다.

여기에 이미지 설명 입력


-1

때로는 비슷한 상황에서 (귀하의 경우가 매우 간단하기 때문에 문제라고 생각하지 않습니다) kotlin 파일 패키지를 확인하는 것이 좋습니다.

동일한 패키지에 Kotlin 파일이 있고 거기에 일부 클래스를 넣고 패키지 선언을 놓친 경우 IntelliJ 내부에서 동일한 패키지에 클래스가 있지만 패키지 정의가없는 경우 IntelliJ에서 다음과 같이 표시합니다.

오류 : (5, 5) Kotlin : 해결되지 않은 참조 : ...


-1

가장 간단한 솔루션 :

도구-> Kotlin-> 프로젝트에서 Kotin 구성

유용하다고 판단되면 찬성합니다.


아무것도하지 않음 : Kotlin 파일이있는 모든 모듈이 구성됨
Deunz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.