IntelliJ 中的 Kotlin 未解决引用
Kotlin unresolved reference in IntelliJ
我从 this tutorial 开始学习 IntelliJ IDEA 中的 Kotlin。
当我尝试 运行 以下示例时,
fun main(args: Array<String>) {
println("lol")
}
构建失败并出现以下错误:
Error:(5, 5) Kotlin: Unresolved reference: println
这是我第一次使用 IntelliJ。我也从未参与过 Java 项目。我错过了什么吗?
编辑:我已经看到了this other question,虽然它对我的情况无效。
与 IDEA 14.1.5 相同,Kotlin v.1.0.0-beta-1038-IJ141-17。
Kotlin 在创建新项目时获得自己的列表条目(如 Java),但唯一有效的配置是:
新 |项目 | Java | "Kotlin (Java)"(确保您也配置了 Project SDK)
使用库:创建,"Copy to: lib".
你的 Intellij IDEA 插件和你在项目中使用的 Kotlin runtime/compiler 需要匹配。例如,如果 IDE 插件是 Beta 1,但您的 Gradle/Maven 项目使用 M12,您将遇到与您描述的完全相同的问题。因此,请检查所有内容是否对齐。
如果您仍然遇到问题,对于一些较旧的插件,您需要清除 Intellij IDEA 中的缓存(文件菜单,清除缓存并重新启动,select 选项以重新启动)。
更新 - 01/2022
关于这个问题的 jetbrains 线程已经移动并且无处可寻,因此下面的 link 不再有效。
选项,per module,Kotlin -> FIX
不再存在并且已经存在多年,因为这是一个临时补丁来处理集成问题早期的早期版本。
如果有人偶然发现了这个并且 NEITHER Invalidate Cache
或 Update Kotlin's Version
工作:
首先,确保您可以从 IDE 外部构建它。如果您使用 gradle
,例如:
gradle 清理构建
如果一切顺利,那么您的环境就可以使用 Kotlin
。
- 要修复 IDE 版本,尝试以下操作:
Project Structure -> {Select Module} -> Kotlin -> FIX
正如 JetBrain 成员在此处的建议:https://discuss.kotlinlang.org/t/intellij-kotlin-project-screw-up/597
有时在类似的情况下(我不认为这是你的问题,因为你的情况很简单)值得检查kotlin文件包。
如果您在同一个包中有 Kotlin 文件并在那里放了一些 类 并且错过了包声明,它会在 IntelliJ 内部查找您在同一个包中有 类 但没有包定义IntelliJ 向您显示:
Error:(5, 5) Kotlin: Unresolved reference: ...
我尝试了一切:清理构建文件夹,运行 gradle clean build
,执行 AS invalidate cache(x2),重新安装 Kotlin 插件,重启电脑。
但最后在完成所有这些之后它仍然没有用,但也从项目 build.gradle
中删除了这一行:apply plugin: 'kotlin-android-extensions'
、gradle sync 然后重新-添加成功
独立 Kotlin 项目的一个可能解决方案是在根项目中明确包含 Kotlin 标准库。
要在 IntelliJ IDEA 中执行此操作:
- 按 Ctrl+Shift+A(搜索操作或选项)
- 输入 "Configure kotlin in project" 并让它为您包含标准库
运行进入这个问题。我必须将以下内容添加到我的 build.grade 中:
apply plugin: 'kotlin-android'
对我来说,这是因为该项目在其项目结构中缺少 Gradle 个库。
只需添加build.gradle:
apply plugin: 'idea'
然后 运行:
$ gradle idea
之后gradle重建依赖库并识别引用!
就我而言,这是一个错误配置的 IntelliJ 实例。
Project Structure -> SDKs -> Remove and add the Java SDK again
好吧,我来过这里几次,但不完全确定这是怎么发生的或为什么会发生,但阅读表明它 Kotlin/JVM 不匹配。我已经尝试了此页面上提到的许多事情,但并非没有完全成功。这是 IDE 在尝试通过 IDE 进行 运行 测试后在消息面板中显示的那种症状。然而,代码面板没有红线表示无法找到或导入模块或任何不愉快的事情。
我的项目(在撰写本文时)是 IntelliJ 中的 gradle 4.10.2 kotlin 1.3 项目(IntelliJ IDEA 2018.2.5(终极版)Build #IU-182.4892。 20, 建立于 2018 年 10 月 16 日)
虽然对于初学者来说,我使缓存无效并重新启动。然后 运行 一个 gradle 干净的构建。重建项目后仍然没有快乐。我进入项目设置并注意到编译器版本未设置为 java 8,我将 Compiler/Kotlin/Target JVM 版本和 Compiler/Java/Project 字节代码设置为 1.8/8(见下文),然后运行 IDE 中的一些测试,我们恢复正常了!我的案例中的参考文献已解决。
今天发生在我身上。
我的问题是我打开了太多带有源代码的标签页(我不知道它们已打开)。
如果您关闭所有选项卡,也许您会混淆 IntelliJ 以正确索引依赖项
我的问题通过添加 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(纯科特林)
My error was throw here, because Android Studio create my domain
module as pure Java Module and applied plugin as java, and I used it
in the my presentation module that is a Android/Kotlin Module
The Android Studio finds and import the path of package but the incompatibillity
don't allow the build.
Just remove apply plugin: 'java'
and swith to kotlin as follow
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 {
..
}
我认为这会有所帮助
在 Android Studio 中使缓存失效并更新 Kotlin 插件对我来说是个窍门。
我遇到这个问题是因为我正在尝试设置多平台库配置。
我已经从 "build.gradle" 文件中删除了所有源集及其依赖项,但保留了 "common" 源集。
Native 工作正常,但 JVM 无法构建并显示您的错误。
最终,解决方案是不删除 JVM 的源集及其依赖项
我想补充的另一件事是,您需要先select 查看 -> 工具 Windows -> Gradle 运行 项目可以使用 Gradle.
如果使用 Gradle 项目构建和 运行s 正常但使用 IntelliJ 它没有,那么这可以解决问题。
我遇到这个问题是因为 linter 正在打印我的对象是 Foo
的实例,而编译器无法定义它的类型并认为它是一个 Any
对象(它是在我的情况下更复杂,linter 在下面的代码中显示错误,但想法在这里):
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
我也遇到了这个错误,但我已经使用以下概念解决了这个问题。
- 重启你的intellij idea社区版。
- 之后,在右上角设置 java 的配置。
- 为所有模块选择配置设置。然后重新运行代码。它会起作用。
出现此错误是因为未正确配置 java。
最简单的解决方案:
工具->Kotlin->在项目中配置Kotin
检查并安装 Android Studio 更新。这解决了问题。
有时会发生这种情况,因为您试图在 Gradle 中使用具有不兼容版本的 Kotlin 插件的项目,而在 IDE 中使用插件。检查 org.jetbrains.kotlin.jvm 和 build.gradle 中的其他 Kotlin 插件的版本,以及 IDE 中安装的 kotlin 插件的版本,并尝试使其相似:
对我不起作用,尝试了一些方法后,手动删除 IDEA 缓存有效:
缓存目录:
~/Library/Caches/JetBrains/<product><version> on macOS
~/.cache/JetBrains/<product><version> on Linux
%LOCALAPPDATA%\JetBrains\<product><version> on Windows
解决方案来源:KTX issues
在我的情况下,所有设置都很好,我做了 Invalidate Cache and restart
,但我仍然遇到问题。
我尝试了以下解决方案并为我工作。
- 按
crtl + shift + alt + s
进入项目结构。
- 在项目设置中 select
project
.
- 然后在 Project SDK 中单击您的 java 版本和 select Kotlin。
- 运行 项目。
- 完成所有 1 到 4,但再次 select 您的 jdk。
- 重新运行你的项目。
就我而言,我尝试了所有方法来清除缓存、手动删除依赖项 JAR 并重新加载 Maven 依赖项。
在我为项目启用所有子项和父项 POM 后问题得到解决:
- 转到
Preferences -> Build,Execution,Deployment -> Build Tool -> Maven ->
Ignored Files
- 取消选中所有忽略的文件,然后重新应用
- 同步 Maven 依赖项
- 清除缓存并重新启动 IntelliJ(如果您仍然看到此错误)
尝试几个步骤后,这对我有用。
右键单击项目 > 打开模块设置 > 项目设置 > 模块
我删除了其他配置,只保留了一个,即。 “第一个微服务 - Kotlin”
从首选项 > 构建、执行、部署 > 编译 > Kotlin 编译器
从首选项 > 构建、执行、部署 > 编译 > Java 编译器
从首选项 > 构建、执行、部署 > 构建工具 > Maven > Runner
完成后运行:
Maven 清理
Maven编译
Maven 安装
您的根 build.gradle 文件有问题
- 检查 org.jetbrains.kotlin 的版本:kotlin-gradle-plugin
- 检查 com.android.tools.build 的版本:gradle
更新那些版本
对我有用的方法是右键单击项目 > Maven > 重新加载项目。
我被这个 IDE 错误卡住了半天。这当然是与集成 Kotlin 插件的兼容性有关的问题,但如果通过前面答案中解释的各种操作无法解决,唯一可行的解决方案似乎是完全卸载(删除缓存和插件)并重新安装IntelliJ。
IDE
中可能潜伏着一些旧插件
我运行遇到了同样的问题,但这不是intellij问题,而不是新Ktor版本的映射问题,所以首先你可以检查是否必须从1.6迁移依赖项。 * 到本网站上的 Ktor 2.0.*:
我从 this tutorial 开始学习 IntelliJ IDEA 中的 Kotlin。
当我尝试 运行 以下示例时,
fun main(args: Array<String>) {
println("lol")
}
构建失败并出现以下错误:
Error:(5, 5) Kotlin: Unresolved reference: println
这是我第一次使用 IntelliJ。我也从未参与过 Java 项目。我错过了什么吗?
编辑:我已经看到了this other question,虽然它对我的情况无效。
与 IDEA 14.1.5 相同,Kotlin v.1.0.0-beta-1038-IJ141-17。
Kotlin 在创建新项目时获得自己的列表条目(如 Java),但唯一有效的配置是:
新 |项目 | Java | "Kotlin (Java)"(确保您也配置了 Project SDK)
使用库:创建,"Copy to: lib".
你的 Intellij IDEA 插件和你在项目中使用的 Kotlin runtime/compiler 需要匹配。例如,如果 IDE 插件是 Beta 1,但您的 Gradle/Maven 项目使用 M12,您将遇到与您描述的完全相同的问题。因此,请检查所有内容是否对齐。
如果您仍然遇到问题,对于一些较旧的插件,您需要清除 Intellij IDEA 中的缓存(文件菜单,清除缓存并重新启动,select 选项以重新启动)。
更新 - 01/2022
关于这个问题的 jetbrains 线程已经移动并且无处可寻,因此下面的 link 不再有效。
选项,per module,Kotlin -> FIX
不再存在并且已经存在多年,因为这是一个临时补丁来处理集成问题早期的早期版本。
如果有人偶然发现了这个并且 NEITHER Invalidate Cache
或 Update Kotlin's Version
工作:
首先,确保您可以从 IDE 外部构建它。如果您使用
gradle
,例如:gradle 清理构建
如果一切顺利,那么您的环境就可以使用 Kotlin
。
- 要修复 IDE 版本,尝试以下操作:
Project Structure -> {Select Module} -> Kotlin -> FIX
正如 JetBrain 成员在此处的建议:https://discuss.kotlinlang.org/t/intellij-kotlin-project-screw-up/597
有时在类似的情况下(我不认为这是你的问题,因为你的情况很简单)值得检查kotlin文件包。
如果您在同一个包中有 Kotlin 文件并在那里放了一些 类 并且错过了包声明,它会在 IntelliJ 内部查找您在同一个包中有 类 但没有包定义IntelliJ 向您显示:
Error:(5, 5) Kotlin: Unresolved reference: ...
我尝试了一切:清理构建文件夹,运行 gradle clean build
,执行 AS invalidate cache(x2),重新安装 Kotlin 插件,重启电脑。
但最后在完成所有这些之后它仍然没有用,但也从项目 build.gradle
中删除了这一行:apply plugin: 'kotlin-android-extensions'
、gradle sync 然后重新-添加成功
独立 Kotlin 项目的一个可能解决方案是在根项目中明确包含 Kotlin 标准库。
要在 IntelliJ IDEA 中执行此操作:
- 按 Ctrl+Shift+A(搜索操作或选项)
- 输入 "Configure kotlin in project" 并让它为您包含标准库
运行进入这个问题。我必须将以下内容添加到我的 build.grade 中:
apply plugin: 'kotlin-android'
对我来说,这是因为该项目在其项目结构中缺少 Gradle 个库。
只需添加build.gradle:
apply plugin: 'idea'
然后 运行:
$ gradle idea
之后gradle重建依赖库并识别引用!
就我而言,这是一个错误配置的 IntelliJ 实例。
Project Structure -> SDKs -> Remove and add the Java SDK again
好吧,我来过这里几次,但不完全确定这是怎么发生的或为什么会发生,但阅读表明它 Kotlin/JVM 不匹配。我已经尝试了此页面上提到的许多事情,但并非没有完全成功。这是 IDE 在尝试通过 IDE 进行 运行 测试后在消息面板中显示的那种症状。然而,代码面板没有红线表示无法找到或导入模块或任何不愉快的事情。
我的项目(在撰写本文时)是 IntelliJ 中的 gradle 4.10.2 kotlin 1.3 项目(IntelliJ IDEA 2018.2.5(终极版)Build #IU-182.4892。 20, 建立于 2018 年 10 月 16 日)
虽然对于初学者来说,我使缓存无效并重新启动。然后 运行 一个 gradle 干净的构建。重建项目后仍然没有快乐。我进入项目设置并注意到编译器版本未设置为 java 8,我将 Compiler/Kotlin/Target JVM 版本和 Compiler/Java/Project 字节代码设置为 1.8/8(见下文),然后运行 IDE 中的一些测试,我们恢复正常了!我的案例中的参考文献已解决。
今天发生在我身上。
我的问题是我打开了太多带有源代码的标签页(我不知道它们已打开)。
如果您关闭所有选项卡,也许您会混淆 IntelliJ 以正确索引依赖项
我的问题通过添加 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(纯科特林)
My error was throw here, because Android Studio create my domain module as pure Java Module and applied plugin as java, and I used it in the my presentation module that is a Android/Kotlin Module
The Android Studio finds and import the path of package but the incompatibillity don't allow the build.
Just remove
apply plugin: 'java'
and swith to kotlin as follow
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 {
..
}
我认为这会有所帮助
在 Android Studio 中使缓存失效并更新 Kotlin 插件对我来说是个窍门。
我遇到这个问题是因为我正在尝试设置多平台库配置。
我已经从 "build.gradle" 文件中删除了所有源集及其依赖项,但保留了 "common" 源集。
Native 工作正常,但 JVM 无法构建并显示您的错误。
最终,解决方案是不删除 JVM 的源集及其依赖项
我想补充的另一件事是,您需要先select 查看 -> 工具 Windows -> Gradle 运行 项目可以使用 Gradle.
如果使用 Gradle 项目构建和 运行s 正常但使用 IntelliJ 它没有,那么这可以解决问题。
我遇到这个问题是因为 linter 正在打印我的对象是 Foo
的实例,而编译器无法定义它的类型并认为它是一个 Any
对象(它是在我的情况下更复杂,linter 在下面的代码中显示错误,但想法在这里):
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
我也遇到了这个错误,但我已经使用以下概念解决了这个问题。
- 重启你的intellij idea社区版。
- 之后,在右上角设置 java 的配置。
- 为所有模块选择配置设置。然后重新运行代码。它会起作用。
出现此错误是因为未正确配置 java。
最简单的解决方案:
工具->Kotlin->在项目中配置Kotin
检查并安装 Android Studio 更新。这解决了问题。
有时会发生这种情况,因为您试图在 Gradle 中使用具有不兼容版本的 Kotlin 插件的项目,而在 IDE 中使用插件。检查 org.jetbrains.kotlin.jvm 和 build.gradle 中的其他 Kotlin 插件的版本,以及 IDE 中安装的 kotlin 插件的版本,并尝试使其相似:
缓存目录:
~/Library/Caches/JetBrains/<product><version> on macOS
~/.cache/JetBrains/<product><version> on Linux
%LOCALAPPDATA%\JetBrains\<product><version> on Windows
解决方案来源:KTX issues
在我的情况下,所有设置都很好,我做了 Invalidate Cache and restart
,但我仍然遇到问题。
我尝试了以下解决方案并为我工作。
- 按
crtl + shift + alt + s
进入项目结构。 - 在项目设置中 select
project
. - 然后在 Project SDK 中单击您的 java 版本和 select Kotlin。
- 运行 项目。
- 完成所有 1 到 4,但再次 select 您的 jdk。
- 重新运行你的项目。
就我而言,我尝试了所有方法来清除缓存、手动删除依赖项 JAR 并重新加载 Maven 依赖项。
在我为项目启用所有子项和父项 POM 后问题得到解决:
- 转到
Preferences -> Build,Execution,Deployment -> Build Tool -> Maven -> Ignored Files
- 取消选中所有忽略的文件,然后重新应用
- 同步 Maven 依赖项
- 清除缓存并重新启动 IntelliJ(如果您仍然看到此错误)
尝试几个步骤后,这对我有用。
右键单击项目 > 打开模块设置 > 项目设置 > 模块
我删除了其他配置,只保留了一个,即。 “第一个微服务 - Kotlin”
从首选项 > 构建、执行、部署 > 编译 > Kotlin 编译器
从首选项 > 构建、执行、部署 > 编译 > Java 编译器
从首选项 > 构建、执行、部署 > 构建工具 > Maven > Runner
完成后运行:
Maven 清理
Maven编译
Maven 安装
您的根 build.gradle 文件有问题
- 检查 org.jetbrains.kotlin 的版本:kotlin-gradle-plugin
- 检查 com.android.tools.build 的版本:gradle
更新那些版本
对我有用的方法是右键单击项目 > Maven > 重新加载项目。
我被这个 IDE 错误卡住了半天。这当然是与集成 Kotlin 插件的兼容性有关的问题,但如果通过前面答案中解释的各种操作无法解决,唯一可行的解决方案似乎是完全卸载(删除缓存和插件)并重新安装IntelliJ。 IDE
中可能潜伏着一些旧插件我运行遇到了同样的问题,但这不是intellij问题,而不是新Ktor版本的映射问题,所以首先你可以检查是否必须从1.6迁移依赖项。 * 到本网站上的 Ktor 2.0.*: