web-dev-qa-db-ja.com

IntelliJのKotlin未解決の参照

IntelliJでKotlinを学習するために tutorial から始めました。

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

このメッセージで実行が中断されますError:(5, 5) Kotlin: Unresolved reference: println IntelliJを使用するのは初めてです。Javaプロジェクトでも作業したことはありません。

編集:私は他の question をすでに見ました。答えは私の状況では無効です。

65
Anony-mouse

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

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

65
Jayson Minard

誰かがこれに出くわし、Invalidate CacheUpdate 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

17
vinitius

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

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

10
Martín Coll

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

apply plugin: 'kotlin-Android'

8
Nick

私にとっては、プロジェクトのプロジェクト構造にGradleライブラリが欠けていたためです。

Build.gradleに追加するだけです:apply plugin: 'idea'

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

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

4
R Lu

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

enter image description here

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

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

enter image description here

enter image description here

4
Opentuned

次のように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 St​​udioがドメインモジュールを純粋なJavaモジュールとして作成し、プラグインをJavaとして適用し、Android/Kotlinであるプレゼンテーションモジュールで使用したため、ここでエラーがスローされました。モジュール

Android St​​udioはパッケージのパスを見つけてインポートしますが、非互換性によりビルドが許可されません。

次のようにapply plugin: 'Java'とswithを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 {
    ..
}

役に立つと思います

3
Abner Escócio

IDEA 14.1.5、Kotlin v.1.0.0-beta-1038-IJ141-17でも同じでした。
Kotlinは、新しいプロジェクトの作成時に独自のリストエントリ(Javaなど)を取得しますが、動作する設定は次のとおりです。

新規|プロジェクト| Java | 「Kotlin(Java)」(Project SDKも構成されていることを確認してください)
ライブラリを使用:作成、「コピー先:lib」。

1
kaay

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

IntelliJ IDEAでそれを行うには:

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

ビルドフォルダーのクリーンアップ、gradle clean buildの実行、AS invalidate cache(x2)の実行、Kotlinプラグインの再インストール、PCの再起動など、すべてを試しました。

しかし、これらすべてを実行した後も最終的には動作しませんでしたが、プロジェクトbuild.gradleからの削除も実行しました:apply plugin: 'kotlin-Android-extensions'、gradle sync、そして再追加が動作しました

1
Ultimo_m

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

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

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

0
Przemek Nowak