IntelliJでのKotlinの未解決の参照


93

Kotlinを学習するためのチュートリアルから始めましIntelliJた。例を実行してみたとき、

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

このメッセージで実行が中断されますError:(5, 5) Kotlin: Unresolved reference: println IntelliJを使用するのはこれが初めてJavaです私もプロジェクトに取り組んだことがありません何かが足りないのですか?

編集:私はすでに他の質問を見ました。答えは私の状況には有効ではありません。


バージョンIntellijIDEA?Kotlinプラグインのどのバージョンがインストールされていますか?
d3xter 2015

Kotlinランタイムダイアログでどのオプションを選択しましたか?
yole 2015

昨日インストールしました
。IDEA

はい、GradleとNetbeansを使用した「Helloworld」の例でもこれを取得しています。Gradleビルドは機能します。Netbeansにもプラグインの問題があるようです。残念ながらNetBeansプラグインには最近のアップデートはありません
になる

回答:


92

プロジェクトで使用するIntellijIDEAプラグインとKotlinランタイム/コンパイラが一致している必要があります。たとえば、IDEプラグインがベータ1であるが、M12を使用するGradle / Mavenプロジェクトの場合、説明したとおりに問題が発生します。したがって、すべてが揃っていることを確認してください。

それでも問題が解決しない場合は、一部の古いプラグインでIntellij IDEAのキャッシュをクリアする必要があります([ファイル]メニュー、[キャッシュのクリアと再起動]、再起動するオプションを選択)。


キャッシュのクリア、Android Studioの更新、kotlinプラグインの組み合わせにより、修正されました。ありがとう
user1405990 2016年

こんにちは。少し時間をかけてKotlinのグーグルを検討します。ここでの原因はプラグイン自体にあるとは思いません。 printlnkotlin.ioパッケージに含まれてます。Kotlin-stdlibJARには「kotlin.io」が含まれています。したがって、表面的には問題ありません。kotlin.io。*を明示的に含めました-結果:Unresolved reference: io。JARアーカイブとして、参照解像度幼稚園のものでなければなりません。元気!??
ます

私は戻っきました... Netbeansの人々はこれを「修正」することもできます-netbeansユーザーキャッシュを削除します。[ヘルプ] / [バージョン情報]ボックスをクリックすると、Netbeansキャッシュディレクトリの場所を確認できます。クリーン-Netbeansの停止-キャッシュの削除-Netbeansの再起動-再構築! Volia
ます

Gradleビルドファイルでのみこの問題が発生し、プロジェクトのソースファイルでは発生しない場合は、次のようになります。discuss.kotlinlang.org
t

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
AndroidStudioを使用しています。プロジェクト構造>モジュールに「Kotlin」オプションがありません。何か案は?
AutonomousApps

4
モジュールを選択した後、このkotlinオプションが表示されない... Enterprise intellijを使用しており、ツール-> kotlin-> configure
heug 2018

23

私の場合、それは誤って構成されたIntelliJインスタンスでした。

プロジェクト構造-> SDK-> JavaSDKを削除して再度追加します


これは、OpenJDKを削除してOracleJDKをインストールした後の私の問題でした。ありがとう。
PatrikStas18年

これにより、IntelliJ2019.3およびOpenJDK11での問題が解決しました。SDKを削除して再度追加する必要がありました。
z11i

10

この問題に遭遇しました。build.gradeに以下を追加する必要がありました。

apply plugin: 'kotlin-android'


8

さて、私はここに数回行ったことがあり、これがどのように、またはなぜ起こるのか完全にはわかりませんが、読んでいると、Kotlin / JVMの不一致が示唆されています。私はこのページに記載されている多くのことを試しましたが、完全な成功がなかったわけではありません。これは、IDEを介してテストを実行しようとした後、IDEがメッセージパネルに表示していた一種の症状でした。ただし、コードパネルには、モジュールが見つからない、インポートできない、またはその他の問題があることを示す赤い線はありません。

ここに画像の説明を入力してください

私のプロジェクト(これを書いている時点)は、IntelliJのgradle 4.10.2 kotlin 1.3プロジェクトです(IntelliJ IDEA 2018.2.5(Ultimate Edition)ビルド#IU-182.4892.20、2018年10月16日にビルド)

ただし、最初に、キャッシュを無効にして再起動しました。次に、gradleクリーンビルドを実行しました。プロジェクトを再構築した後も、まだ喜びはありません。プロジェクトの設定に入ると、コンパイラのバージョンがjava 8に設定されていないことに気付き、コンパイラ/ Kotlin /ターゲットJVMバージョンとコンパイラ/ Java /プロジェクトのバイトコードを1.8 / 8に設定し(以下を参照)、でいくつかのテストを実行しました。 IDEと私たちはビジネスに戻っています!私の場合、参照は解決されました。

ここに画像の説明を入力してください

ここに画像の説明を入力してください


同様の問題が発生しましたが、モジュールモジュールを正しいターゲットJVMバージョンに変更する必要がありました
Jake Walsh

4

私にとっては、プロジェクトの構造にGradleライブラリがないことが原因でした。

build.gradleを追加するだけです: apply plugin: 'idea'

そして、実行します: $ gradle idea

その後、gradleは依存関係ライブラリを再構築し、参照が認識されます!


これは、
gradle

3

スタンドアロンのKotlinプロジェクトで考えられる解決策は、ルートプロジェクト内にKotlin標準ライブラリを明示的に含めることです。

IntelliJ IDEAでそれを行うには:

  • Ctrl + Shift + A(検索アクションまたはオプション)を押します
  • 「プロジェクトでkotlinを構成する」と入力し、標準のライブラリを含めます

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に切り替えます

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、Kotlinv.1.0.0-beta-1038-IJ141-17でも同じでした。
Kotlinは、新しいプロジェクトを作成するときに独自のリストエントリ(Javaなど)を取得しますが、機能する構成は次のとおりです

。プロジェクト| Java | 「Kotlin(Java)」(Project SDKも構成されていることを確認してください)
use library:Create、「Copy to:lib」。


1

私はすべてを試しました:ビルドフォルダーのクリーンアップ、実行gradle clean build、AS無効化キャッシュ(x2)の実行、Kotlinプラグインの再インストール、PCの再起動。

しかし、結局、これをすべて実行した後でも機能しませんでしたがbuild.gradle、この行のプロジェクトからの削除も実行しました:apply plugin: 'kotlin-android-extensions'、gradle sync、そして再追加は機能しました


1

私もこのエラーが発生していましたが、以下の概念を使用してこれを解決しました。

  1. IntelliJ Idea CommunityEditionを再起動します。
  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で2つのプロジェクトを開いている場合、1つはGradleを使用し、もう1つはMavenを使用するとします。プロジェクトの1つを実行すると、未解決の参照が発生する可能性があります。
HA S


0

マルチプラットフォームのライブラリ構成をセットアップしようとしていたため、この問題が発生しました。

「build.gradle」ファイルから依存関係のあるすべてのソースセットを削除しましたが、「共通」のソースセットは保持しました。

ネイティブは正常に機能していましたが、JVMをビルドできず、エラーが表示されました。

結局のところ、解決策は、JVMのソースセットもその依存関係も削除しないことでした。


0

追加したいもう1つの点は、Gradleを使用してプロジェクトを実行する前に、[表示]-> [ツールウィンドウ]-> [Gradle]を選択する必要があることです。

Gradleを使用すると、プロジェクトは正常にビルドおよび実行されますが、IntelliJを使用するとそうではない場合、これで問題を解決できます。


0

この問題が発生したのは、リンターがオブジェクトがインスタンスでFooあると印刷していたのに対し、コンパイラーはそのタイプを定義できず、次のAnyようなオブジェクトであると見なすことができなかったためです(私の場合、リンターは以下のコードでエラーを表示しますが、アイデアはここにあります):

    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

AndroidStudioのアップデートを確認してインストールします。これで問題が解決します。

ここに画像の説明を入力してください


-1

同様の状況では(ケースが非常に単純なので、問題ではないと思います)、kotlinファイルパッケージを確認する価値がある場合があります。

同じパッケージ内にKotlinファイルがあり、そこにいくつかのクラスを配置し、パッケージ宣言を見逃した場合、IntelliJ内では、同じパッケージ内にクラスがあるが、パッケージの定義がない場合、IntelliJは次のように表示します。

エラー:(5、5)Kotlin:未解決の参照:..。


-1

最も簡単な解決策:

ツール-> Kotlin->プロジェクトでKotinを構成する

Usefullが見つかった場合は、賛成票を投じます。


何もしません:Kotlinファイルを含むすべてのモジュールが構成されています
Deunz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.