在IntelliJ中Kotlin未解决的引用问题

149

我最开始使用这个教程来学习在IntelliJ IDEA中使用Kotlin。
当我尝试运行以下示例时,

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

编译失败,出现以下错误:

Error:(5, 5) Kotlin: Unresolved reference: println

这是我第一次使用IntelliJ。我也从未在Java项目上工作过。我是否遗漏了什么?

编辑: 我已经看过这个问题了,但对于我的情况无效。


Intellij IDEA的版本是多少?安装了哪个版本的Kotlin插件? - D3xter
你在 Kotlin 运行时对话框中选择了哪个选项? - yole
我昨天刚安装了它。IDEA是14.1版本,同时也安装了最新的Kotlin。 - Anony-mouse
是的,我在使用Gradle和Netbeans的“Hello world”示例时也遇到了这个问题。 Gradle构建可以正常工作。看起来这也是Netbeans插件的问题。可惜最近没有更新Netbeans插件。 - will
这对于我的SpringBoot项目有效。 https://dev59.com/VrDla4cB1Zd3GeqP8311 - Ronny Shibley
对我有帮助的解决方案:点击。需要清理Android Studio缓存。 - SerjantArbuz
32个回答

0

您的根build.gradle文件存在问题

  1. 检查org.jetbrains.kotlin:kotlin-gradle-plugin的版本
  2. 检查com.android.tools.build:gradle的版本

更新这些版本


0

我被这个 IDE 的 Bug 卡了半天。显然这是和 Kotlin 集成插件的兼容性相关的问题,但如果之前的解决方法都无效的话,唯一看起来有效的方案就是完全卸载(包括缓存和插件)并重新安装 IntelliJ。可能有一些旧的插件还残留在 IDE 中。


0
我遇到了同样的问题,但这不是Intellij的问题,而是新Ktor版本中的映射问题。因此,首先您可以检查一下是否需要将依赖项从1.6.*迁移到Ktor 2.0.*,请参考此网站:

https://ktor.io/docs/migrating-2.html


0

我也遇到了与IntelliJ IDEA 2021.3.3相同的问题。

  1. 检查您的IDE是否安装了最新版本的kotlin插件(首选项 -> 语言和框架 -> kotlin)

  2. 确保您的build.gradle文件中的和与您的项目设置 -> 模块 -> Kotlin匹配(对我来说是JVM 17和kotlin 1.6)

  3. 如果仍然有问题,请清除IDE缓存:

    • 文件菜单 -> 无效缓存...(标记VCS选项)。

    • 如果仍然有问题,只需手动删除~/Library/Caches/JetBrains/<product><version>下的缓存文件


0
使Intellij Idea缓存失效并重新启动: 文件->无效缓存...->选择必要的项目然后

这并没有回答问题。一旦您拥有足够的声望,您将能够评论任何帖子;相反,提供不需要询问者澄清的答案。- 来自审核 - JustSightseeing

0
在我的情况下,我尝试了所有清除缓存、手动删除依赖JAR并重新加载Maven依赖项的方法。
问题在我启用项目的所有子POM和父POM后得到解决:
  1. 前往

首选项 -> 构建、执行、部署 -> 构建工具 -> Maven -> 忽略的文件

  1. 取消所有忽略的文件,然后重新应用
  2. 同步Maven依赖项
  3. 清除缓存并重新启动IntelliJ(如果您仍然看到此错误)

0
对我而言有效的方法是右键单击项目,然后选择 Maven - 重新加载项目。

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

-1

我遇到了这个问题,因为我试图设置一个多平台库配置。

我从“build.gradle”文件中删除了所有带有它们依赖项的源集,但保留了“common”源集。

本地工作正常,但JVM无法构建并显示您的错误。

最终的解决方案是不要删除JVM的源集及其依赖项。


-1
有时候在类似的情况下(我不认为这是你的问题,因为你的情况非常简单),值得检查 Kotlin 文件包。
如果您在同一个包中有 Kotlin 文件,并在其中放置了一些类并且忘记了包声明,那么 IntelliJ 将在其内部查找您是否有相同包中的类,但是没有包定义,IntelliJ 会显示:
错误:(5,5)Kotlin:未解析的引用:...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接