Kotlin未解决IntelliJ中的参考问题

时间:2015-07-29 22:07:57

标签: intellij-idea jvm kotlin

我开始使用tutorialIntelliJ学习Kotlin。当我尝试运行这个例子时,即

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

暂停执行此消息Error:(5, 5) Kotlin: Unresolved reference: println 这是我第一次使用IntelliJ.I从未在Java项目上工作。我错过了什么?

编辑:我已经看到了其他question。答案对我的情况无效。

21 个答案:

答案 0 :(得分:64)

您在项目中使用的Intellij IDEA插件和Kotlin运行时/编译器需要匹配。例如,如果IDE插件是Beta 1,但是您的Gradle / Maven项目使用M12,那么您将完全按照您的描述进行操作。所以检查一切都排好了。

如果仍有问题,使用一些较旧的插件,则需要清除Intellij IDEA中的缓存(文件菜单,清除缓存和重启,选择重启选项)。

答案 1 :(得分:17)

如果有人遇到这种情况并且没有 Invalidate CacheUpdate Kotlin's Version工作:

1)首先,确保您可以从IDE外部构建它。如果您正在使用gradle,例如:

gradle clean build

如果一切顺利,那么您的环境就可以与Kotlin一起使用。

2)要修复IDE版本,请尝试以下

  

项目结构 - &gt; {选择模块} - &gt; Kotlin - &gt; FIX

正如JetBrain的成员所建议的那样:https://discuss.kotlinlang.org/t/intellij-kotlin-project-screw-up/597

答案 2 :(得分:10)

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

  

项目结构 - &gt; SDKs - &gt;再次删除并添加Java SDK

答案 3 :(得分:8)

进入这个问题。我不得不将以下内容添加到build.grade:

apply plugin: 'kotlin-android'

答案 4 :(得分:4)

对我来说,这是由于项目在项目结构中缺少Gradle Libraries。

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

然后运行: $ gradle idea

在该gradle重建依赖项库之后,可以识别引用!

答案 5 :(得分:4)

好吧,我来过这里几次,但并不完全确定这种情况如何发生或为什么发生,但是阅读表明它是Kotlin / JVM不匹配的。我已经尝试了此页面上提到的许多方法,但并非没有完全成功。尝试通过IDE运行测试之后,IDE便在消息面板中显示了这种症状。但是,代码面板上没有红线,表示无法找到或导入模块或其他不良信息。

enter image description here

我的项目(在撰写本文时)是IntelliJ中的gradle 4.10.2 kotlin 1.3项目(IntelliJ IDEA 2018.2.5(Ultimate Edition)版本#IU-182.4892.20,于2018年10月16日构建)

对于初学者来说,我使缓存无效并重新启动。然后运行gradle清理构建。重建项目后仍然没有喜悦。我进入项目设置,发现编译器版本未设置为Java 8,我将Compiler / Kotlin / Target JVM Version和Compiler / Java / Project Byte Code设置为1.8 / 8(请参见下文),然后在IDE,我们重新营业!在我的情况下,引用已解决。

enter image description here

enter image description here

答案 6 :(得分: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 {
    ...
}

...

data.gradle

apply plugin: 'com.android.library'

apply plugin: 'kotlin-android' // here

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

android {
    ...
}

dependencies {
    ..
}

我认为这会有所帮助

答案 7 :(得分:1)

Top Solution 对我不起作用,尝试一些方法后,手动删除 IDEA 缓存:

缓存目录:

~/Library/Caches/JetBrains/<product><version> on macOS
~/.cache/JetBrains/<product><version> on Linux
%LOCALAPPDATA%\JetBrains\<product><version> on Windows

解决方案来源:KTX issues

答案 8 :(得分:1)

与IDEA 14.1.5,Kotlin v.1.0.0-beta-1038-IJ141-17相同。
Kotlin在创建新项目时获得了自己的列表条目(如Java),但唯一可用的配置是:

新的|项目| Java | &#34; Kotlin(Java)&#34; (确保您也配置了Project SDK)
使用库:创建,&#34;复制到:lib&#34;。

答案 9 :(得分:1)

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

enter image description here

enter image description here

答案 10 :(得分:1)

我也很容易出错,但是我已经使用下面的概念解决了这个问题。

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

enter image description here

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

出现此错误是由于未正确配置Java。

答案 11 :(得分:1)

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

在IntelliJ IDEA中执行此操作:

  • 按Ctrl + Shift + A(搜索操作或选项)
  • 输入&#34;在项目中配置kotlin&#34;并让它包括你的标准库

答案 12 :(得分:1)

我尝试了一切:清理构建文件夹,运行gradle clean build,执行AS invalidate cache(x2),重新安装Kotlin插件,重启pc。

但是在完成所有这些操作后最终仍然无法正常工作,但也要从此行的build.gradle项中删除:apply plugin: 'kotlin-android-extensions',重新同步,然后重新添加工作< / p>

答案 13 :(得分:0)

使缓存无效并更新Android Studio中的Kotlin插件对我来说是成功的秘诀。

答案 14 :(得分:0)

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

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

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

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

答案 15 :(得分:0)

我想补充的另一件事是,您需要先选择 View-> Tool Windows-> Gradle ,然后才能使用Gradle运行项目。

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

答案 16 :(得分:0)

我遇到了这个问题,因为linter正在打印我的对象是#define MAX_COUNTER 255 ... if ( counter < MAX_COUNTER-1 ) counter++; 的实例,而编译器无法定义它的类型并认为它是一个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.

答案 17 :(得分:0)

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

enter image description here

答案 18 :(得分:0)

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

如果您在同一个软件包中有Kotlin文件,并且放了一些类并且错过了软件包声明,它会在IntelliJ中看到您在同一个软件包中有类,但是IntelliJ没有显示软件包的定义:

  

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

答案 19 :(得分:-1)

今天发生在我身上。

我的问题是我打开的标签太多(我不知道它们是打开的)。

如果关闭所有选项卡,也许您将使IntelliJ正确地为依赖项编制索引

答案 20 :(得分:-1)

最简单的解决方案:

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

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