IntelliJ中未解决的Kotlin参考


93

我从学习Kotlin的教程开始IntelliJ。当我尝试运行示例时,即

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

该消息将使执行暂停。Error:(5, 5) Kotlin: Unresolved reference: println 这是我第一次使用IntelliJ。我也从未从事过任何Java项目,我是否缺少某些东西?

编辑:我已经看到了另一个问题。答案对于我的情况无效。


版本Intellij IDEA?已安装什么版本的Kotlin插件?
D3xter

您在Kotlin运行时对话框中选择了哪个选项?
yole 2015年

我昨天才安装
。IDEA

是的,我也在使用Gradle和Netbeans的“ Hello world”示例中得到了这一点。gradle构建成功。我看起来也像Netbeans的插件问题。las,Netbeans插件没有最新更新
将于

Answers:


90

您在项目中使用的Intellij IDEA插件和Kotlin运行时/编译器需要匹配。例如,如果IDE插件是Beta 1,但是您的使用M12的Gradle / Maven项目,则将遇到与您所描述的完全相同的问题。因此,请检查所有内容。

如果仍然存在问题,则对于某些较旧的插件,您需要清除Intellij IDEA中的缓存(文件菜单,清除缓存并重新启动,选择选项以重新启动)。


清除缓存,更新android studio和kotlin插件的组合为我修复了它。谢谢
user1405990 '16

再次欢迎您,我花了一些时间考虑一些事情,并且对Kotlin进行了一些谷歌搜索-我认为这里的原因不是插件本身printlnkotlin.io软件包中。Kotlin-stdlib JAR中有“ kotlin.io”。因此表面上没有问题。我明确包含了kotlin.io。*-结果:Unresolved reference: io。作为JAR档案,参考分辨率应该是幼儿园的东西。那么这是什么一回事!??

回来了……Netbeans的人也可以“解决”这个问题-删除netbeans用户缓存。您可以通过单击“帮助” /“关于”框来查看Netbeans缓存目录的位置。清理-停止Netbeans-删除缓存-重新启动Netbeans-重建! 沃里亚

如果你在你的摇篮构建文件看到这个问题只而不是项目源文件,这可能帮助:discuss.kotlinlang.org/t/...
AlexO

25

如果有人偶然发现此内容并与其相邻 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


13
我正在使用Android Studio。我的项目结构>模块中没有“ Kotlin”选项。有任何想法吗?
AutonomousApps

4
选择模块后甚至都没有看到这个kotlin选项...使用企业intellij,并且当我单击工具-> kotlin->配置时
kotlin

23

就我而言,这是一个配置错误的IntelliJ实例。

项目结构-> SDK->删除并再次添加Java SDK


在删除OpenJDK并安装Oracle JDK之后,这是我的问题。谢谢。
Patrik Stas

这已经解决了我在IntelliJ 2019.3和OpenJDK 11上的问题。我只需要删除并再次添加SDK。
z11i

10

遇到这个问题。我必须在build.grade中添加以下内容:

apply plugin: 'kotlin-android'


8

好的,我来过这里几次,但并不完全确定这种情况发生的方式或原因,但是阅读表明它是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清理构建。重建项目后仍然没有喜悦。我进入项目设置,发现编译器版本未设置为Java 8,我将Compiler / Kotlin / Target JVM Version和Compiler / Java / Project Byte Code设置为1.8 / 8(请参见下文),然后在IDE,我们重新营业!在我的情况下,引用已解决。

在此处输入图片说明

在此处输入图片说明


我遇到了类似的问题,但还必须将我的模块模块更改为正确的目标JVM版本
Jake Walsh

4

对我而言,这是由于该项目在其项目结构中缺少Gradle库。

只需添加build.gradle: apply plugin: 'idea'

然后运行: $ gradle idea

之后,gradle重建了依赖库并识别了引用!


由于缺少gradle库,这一工作得到了帮助和工作
Kaushik Burkule

3

独立Kotlin项目的可能解决方案是在根项目中显式包含Kotlin标准库。

要在IntelliJ IDEA中做到这一点:

  • 按Ctrl + Shift + A(搜索操作或选项)
  • 输入“在项目中配置Kotlin”,并让其包含标准库

3

通过添加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 {
    ...
}

...

数据等级

apply plugin: 'com.android.library'

apply plugin: 'kotlin-android' // here

apply plugin: 'kotlin-android-extensions' // and here 

android {
    ...
}

dependencies {
    ..
}

我认为这会有所帮助


1

与IDEA 14.1.5,Kotlin v.1.0.0-beta-1038-IJ141-17相同。
科特林都有自己的列表条目(如Java)当创建新项目,但唯一的工作就是配置:

新| 项目| Java | “库特林(Java)”(确保您也配置了Project SDK)
使用库:创建,“复制到:lib”。


1

我尝试了所有操作:清理构建文件夹,运行gradle clean build,执行AS使缓存(x2)无效,重新安装Kotlin插件,重新启动PC。

但是最后,在完成所有这些操作后,它仍然没有用,但是还从build.gradle该行的项目中删除了该代码:apply plugin: 'kotlin-android-extensions' gradle sync,然后重新添加了


1

我也收到此错误,但是我已经使用以下概念解决了这个问题。

  1. 重新启动您的intellij创意社区版。
  2. 之后,在右上角设置Java的配置。

在此处输入图片说明

  1. 选择所有模块的配置设置。然后重新运行代码。会的。

发生此错误是由于未正确配置Java。


2
对不起,但是2.不清楚。我找不到“右手角”
Deunz

1

有时可能会发生这种情况,因为您正试图在Gradle中使用Kotlin插件版本与IDE中的插件不兼容的项目。在build.gradle中检查org.jetbrains.kotlin.jvm和其他Kotlin插件的版本,并在IDE中检查已安装的kotlin插件的版本,并尝试使其相似:

在此处输入图片说明

在此处输入图片说明


0

今天发生在我身上。

我的问题是我打开了太多带有源代码的选项卡(我不知道它们是否处于打开状态)。

如果关闭所有选项卡,也许您将使IntelliJ正确地索引依赖项变得混乱


实际上这是完全合理的,之所以获得-ngt分数是因为您没有很好地解释它。如果some1在IDE中打开了两个项目,则用Gradle讲一个,用Maven讲一个。运行该项目之一可能会导致未解决的引用。
HA S


0

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

我已经从“ build.gradle”文件中删除了所有具有相关性的源集,但保留了“ common”源集。

本机运行良好,但是JVM无法构建并显示您的错误。

最后,解决方案是不删除JVM的Source集,也不要删除其依赖项


0

我想补充的另一件事是,需要先选择“视图”->“工具窗口”->“ Gradle”,然后才能使用Gradle运行项目。

如果使用Gradle,项目可以正常构建并运行,但是使用IntelliJ,则不能解决问题。


0

我遇到这个问题是因为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

0

检查并安装Android Studio更新。这样可以解决问题。

在此处输入图片说明


-1

有时在类似情况下(我不认为这是您的问题,因为您的情况很简单),值得检查kotlin文件包。

如果您在同一软件包中包含Kotlin文件,并在其中放置了一些类而错过了软件包声明,则它会在IntelliJ中查找您在同一软件包中具有类,但没有对软件包进行定义,则IntelliJ将向您显示:

错误:(5、5)Kotlin:未解决的参考:...


-1

最简单的解决方案:

工具-> Kotlin->在项目中配置Kotin

如果发现有用则进行投票。


什么都不做:配置了带有Kotlin文件的所有模块
Deunz
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.