IntelliJ 中的 Kotlin 未解决的参考
Posted
技术标签:
【中文标题】IntelliJ 中的 Kotlin 未解决的参考【英文标题】:Kotlin unresolved reference in IntelliJ 【发布时间】:2015-10-21 02:50:42 【问题描述】:我从 this tutorial 开始在 IntelliJ IDEA 中学习 Kotlin。 当我尝试运行以下示例时,
fun main(args: Array<String>)
println("lol")
构建失败并出现以下错误:
Error:(5, 5) Kotlin: Unresolved reference: println
这是我第一次使用 IntelliJ。我也从未从事过 Java 项目。我错过了什么吗?
编辑:我已经看过this other question,虽然它不适用于我的情况。
【问题讨论】:
版本 Intellij IDEA?安装了哪个版本的 Kotlin 插件? 您在 Kotlin 运行时对话框中选择了哪个选项? 我昨天刚安装的。IDEA 是 14.1,也是最新的 Kotlin 是的,我也在使用 Gradle 和 Netbeans 的“Hello world”示例中得到了这个。 gradle 构建工作。我看起来也像 Netbeans 的插件问题。唉,Netbeans 插件最近没有更新 这对我来说适用于 SpringBoot。 ***.com/questions/53775262/… 【参考方案1】:您的 Intellij IDEA 插件和您在项目中使用的 Kotlin 运行时/编译器需要匹配。例如,如果 IDE 插件是 Beta 1,但您的 Gradle/Maven 项目使用 M12,您将遇到与您描述的完全一样的问题。因此,请检查所有内容是否对齐。
如果您仍然有问题,对于一些较旧的插件,您需要清除 Intellij IDEA 中的缓存(文件菜单,清除缓存并重新启动,选择重新启动选项)。
【讨论】:
清除缓存、更新 android studio 和 kotlin 插件的组合为我修复了它。谢谢 再次嗨,有时间考虑一些东西和一些 Kotlin google-ing -- 我不认为这里的原因是在插件中 本身 . println 位于 kotlin.io 包中。 Kotlin-stdlib JAR 里面有“kotlin.io”。所以表面上没有问题。我明确包含了 kotlin.io.* -- 结果:Unresolved reference: io
。作为一个 JAR 档案,参考解析应该是幼儿园的东西。那怎么了!??
我回来 ... Netbeans 人员也可以“修复”这个问题——删除 netbeans 用户缓存。您可以通过单击“帮助”/“关于”框查看 Netbeans 缓存目录的位置。清理 -- 停止 Netbeans -- 删除缓存 -- 重新启动 Netbeans -- 重建! 沃利亚.
如果您仅在 Gradle 构建文件中看到此问题,而不是在项目源文件中看到此问题,这可能会有所帮助:discuss.kotlinlang.org/t/…【参考方案2】:
更新 - 01/2022
关于此问题的 jetbrains 线程已移动且无处可寻,因此下面的链接不再有效。
选项,每个模块,Kotlin -> FIX
不再存在,并且多年来一直如此,因为这是在早期版本中处理集成问题的临时补丁。 p>
如果有人偶然发现这一点并且没有 Invalidate Cache
或 Update Kotlin's Version
工作:
首先,确保您可以从 IDE 外部构建它。例如,如果您使用gradle
:
gradle clean build
如果一切顺利,那么您的环境就可以使用Kotlin
。
-
要修复 IDE 构建,尝试以下操作:
项目结构 -> 选择模块 -> Kotlin -> FIX
根据 JetBrain 成员的建议:https://discuss.kotlinlang.org/t/intellij-kotlin-project-screw-up/597
【讨论】:
我正在使用 Android Studio。我的项目结构 > 模块中没有“Kotlin”选项。有什么想法吗? 在选择模块后甚至看不到这个 kotlin 选项......使用企业 intellij,当我单击工具 -> kotlin -> 配置时,显然已经配置了 kotlin 这救了我:./gradlew clean build【参考方案3】:就我而言,这是一个配置错误的 IntelliJ 实例。
项目结构 -> SDKs -> 移除并再次添加 Java SDK
【讨论】:
这是我删除 OpenJDK 并安装 Oracle JDK 后的问题。谢谢。 这解决了我在 IntelliJ 2019.3 和 OpenJDK 11 上的问题。我只需要重新删除并添加 SDK。【参考方案4】:遇到了这个问题。我必须将以下内容添加到我的 build.grade 中:
apply plugin: 'kotlin-android'
【讨论】:
我正在将项目从 java 迁移到 kotlin,我在其中一个模块中遇到了这个问题。最后,这个解决方案对我有用。谢谢。【参考方案5】:好的,我来过这里几次,但不完全确定这是如何或为什么会发生的,但阅读表明这是 Kotlin/JVM 不匹配的问题。我已经尝试了此页面上提到的许多事情,但并非没有完全成功。这是 IDE 在尝试通过 IDE 运行测试后在消息面板中显示的那种症状。但是代码面板没有红线表示无法找到或导入模块或任何异常情况。
我的项目(在撰写本文时)是 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 build。重建项目后仍然没有喜悦。我进入项目设置并注意到编译器版本未设置为 java 8,我将 Compiler/Kotlin/Target JVM 版本和 Compiler/Java/Project Byte Code 设置为 1.8/8(见下文),然后在其中运行了一些测试IDE,我们又开始营业了!在我的案例中解决了参考。
【讨论】:
我遇到了类似的问题,但也不得不将我的模块模块更改为正确的目标 JVM 版本【参考方案6】:独立 Kotlin 项目的一个可能解决方案是在根项目中明确包含 Kotlin 标准库。
在 IntelliJ IDEA 中这样做:
按 Ctrl+Shift+A(搜索操作或选项) 输入“在项目中配置 kotlin”,让它为您包含标准库【讨论】:
【参考方案7】:对我来说,这是因为项目结构中缺少 Gradle 库。
只需在 build.gradle 中添加:
apply plugin: 'idea'
然后运行:
$ gradle idea
在 gradle 重建依赖库并识别引用之后!
【讨论】:
这个由于缺少 gradle 库而得到帮助和工作【参考方案8】:通过添加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
..
我觉得会有帮助
【讨论】:
【参考方案9】:有时会发生这种情况,因为您尝试使用带有不兼容版本的 Gradle 中 Kotlin 插件的项目与您的 IDE 中的插件。检查 build.gradle 中 org.jetbrains.kotlin.jvm 和其他 Kotlin 插件的版本,以及 IDE 中安装的 kotlin 插件的版本,并尝试使其相似:
【讨论】:
【参考方案10】:检查并安装 Android Studio 更新。这可以解决问题。
【讨论】:
【参考方案11】:与 IDEA 14.1.5 相同,Kotlin v.1.0.0-beta-1038-IJ141-17。 Kotlin 在创建新项目时会获得自己的列表条目(如 Java),但唯一有效的配置是: 新 |项目 |爪哇 | “Kotlin (Java)”(确保您也配置了 Project SDK) 使用库:创建,“复制到:lib”。
【讨论】:
【参考方案12】:我尝试了一切:清理构建文件夹,运行gradle clean build
,执行 AS 无效缓存(x2),重新安装 Kotlin 插件,重新启动电脑。
但最终在做了所有这些之后它仍然没有工作,但也从该行的项目build.gradle
中删除:apply plugin: 'kotlin-android-extensions'
,gradle sync 然后重新添加工作
【讨论】:
【参考方案13】:Top Solution 不适合我,在尝试了一些方法后,手动删除 IDEA 缓存有效:
缓存目录:
~/Library/Caches/JetBrains/<product><version> on macOS
~/.cache/JetBrains/<product><version> on Linux
%LOCALAPPDATA%\JetBrains\<product><version> on Windows
解决方案来源:KTX issues
【讨论】:
【参考方案14】:在我的情况下,所有设置都很好,我做了Invalidate Cache and restart
,但我仍然遇到了问题。
我尝试了以下解决方案并为我工作。
-
按
crtl + shift + alt + s
进入项目结构。
在项目设置中选择project
。
然后在 Project SDK 中单击您的 java 版本并选择 Kotlin。
运行项目。
执行所有 1 到 4,但再次选择您的 jdk。
重新运行您的项目。
【讨论】:
【参考方案15】:今天发生在我身上。
我的问题是我打开了太多带有源代码的标签(我不知道它们是打开的)。
如果您关闭所有选项卡,也许您会混淆 IntelliJ 以正确索引依赖项
【讨论】:
其实这完全有道理,你得到 -ngt 分数的原因是因为你没有很好地解释它。如果 some1 在 IDE 中打开了两个项目,假设一个使用 Gradle,一个使用 Maven;运行其中一个项目可能会导致未解决的引用。【参考方案16】:我遇到了这个问题,因为 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
【讨论】:
【参考方案17】:我也遇到了这个错误,但我已经使用以下概念解决了这个问题。
-
重新启动您的 intellij idea 社区版。
之后,在右上角设置java的配置。
-
为所有模块选择配置设置。然后重新运行代码。它会起作用的。
这个错误是因为没有正确配置java。
【讨论】:
很抱歉,2. 不清楚。我找不到“右上角” 重新安装 intelliJ 为我解决了这个问题【参考方案18】:在我的例子中,我已经尝试了所有方法来清除缓存、手动删除依赖项 JAR 并重新加载 Maven 依赖项。
在我为项目启用所有子 POM 和父 POM 后,问题得到解决:
-
转到
首选项 -> 构建、执行、部署 -> 构建工具 -> Maven -> 忽略的文件
-
取消选中所有被忽略的文件,然后重新应用
同步 Maven 依赖项
清除缓存并重新启动 IntelliJ(如果您仍然看到此错误)
【讨论】:
【参考方案19】:尝试了几个步骤后,这对我有用。
右击项目>打开模块设置>项目设置>模块 我删除了其他配置,只保留了一个,即。 “第一个微服务 - Kotlin”
从首选项 > 构建、执行、部署 > 编译 > Kotlin 编译器
从首选项 > 构建、执行、部署 > 编译 > Java 编译器
从首选项 > 构建、执行、部署 > 构建工具 > Maven > Runner
一旦完成运行: Maven 清洁 Maven编译 Maven 安装
【讨论】:
【参考方案20】:有时在类似的情况下(我不认为这是你的问题,因为你的情况很简单)值得检查一下kotlin文件包。
如果您在同一个包中有 Kotlin 文件并在其中放置了一些类并且错过了包声明,它会在 IntelliJ 内部查找您在同一个包中具有类但没有包定义,IntelliJ 会向您显示:
错误:(5, 5) Kotlin:未解析的引用:...
【讨论】:
【参考方案21】:在 Android Studio 中使缓存失效并更新 Kotlin 插件对我来说是成功的。
【讨论】:
【参考方案22】:我遇到了这个问题,因为我试图设置多平台库配置。
我已从“build.gradle”文件中删除了所有源集及其依赖项,但保留了“通用”源集。
Native 工作正常,但 JVM 无法构建并显示您的错误。
最后的解决方案是不删除JVM的Source集和依赖项
【讨论】:
【参考方案23】:我想补充的另一件事是,您需要先选择 View -> Tool Windows -> Gradle,然后才能使用 Gradle 运行项目。
如果使用 Gradle 项目可以正常构建和运行,但使用 IntelliJ 则不能,那么这可以解决问题。
【讨论】:
【参考方案24】:最简单的解决方案:
工具->Kotlin->在项目中配置 Kotin
如果觉得有用就点赞。
【讨论】:
什么都不做:所有带有 Kotlin 文件的模块都已配置以上是关于IntelliJ 中的 Kotlin 未解决的参考的主要内容,如果未能解决你的问题,请参考以下文章
未解决的参考:android MediaPlayer (kotlin) 中的上下文
Android Studio 3.1.3 - 未解决的参考:R - Kotlin