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 -&gt; FIX 不再存在,并且多年来一直如此,因为这是在早期版本中处理集成问题的临时补丁。 p>


如果有人偶然发现这一点并且没有 Invalidate CacheUpdate 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

Ktor 应用程序未在使用 IntelliJ IDEA 的 Kotlin 多平台项目中运行

未解决的参考:等待。 Kotlin 协程

Kotlin:未解决的参考软银机器人

未解决的参考匕首 2 + kotlin + android gradle