147

I started off with this tutorial for learning Kotlin in IntelliJ IDEA.
When I tried running the following example,

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

Build fails with the following error:

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

This is the first time I am using IntelliJ. I have never worked on a Java project either. Am I missing something?

Edit: I have already seen this other question, though it is not valid for my situation.

Davide Cannizzo
  • 2,826
  • 1
  • 29
  • 31
Anony-mouse
  • 2,041
  • 2
  • 11
  • 23
  • Version Intellij IDEA? What Version of Kotlin plugin is installed? – D3xter Jul 30 '15 at 08:57
  • Which option did you select in the Kotlin runtime dialog? – yole Jul 30 '15 at 09:29
  • I just installed it yesterday.IDEA was 14.1 and latest Kotlin as well – Anony-mouse Jul 30 '15 at 09:56
  • Yes I'm also getting this on the "Hello world" example using Gradle and Netbeans. The gradle build works. I looks like a plug in problem with Netbeans too. Alas there are no recent updates for the Netbeans plugin – will Apr 28 '17 at 12:23
  • This worked for me for SpringBoot. https://stackoverflow.com/questions/53775262/unresolved-dependency-on-package-in-subproject – Ronny Shibley Jan 13 '21 at 12:49
  • For me help this solution: [click](https://stackoverflow.com/a/53388983/7699617). Need clean up android studio cache. – SerjantArbuz Jun 10 '21 at 12:24

31 Answers31

165

Your Intellij IDEA plugin and the Kotlin runtime/compiler that you use in the project need to match. For example if IDE plugin is Beta 1, but your Gradle/Maven project using M12, you'll have issues exactly as you described. So check that everything lines up.

If you still have issues, with some older plugins you need to clear the caches in Intellij IDEA (file menu, Clear Caches and Restart, select option to restart).

Jayson Minard
  • 84,842
  • 38
  • 184
  • 227
  • 5
    A combination of clearing caches, updating android studio and the kotlin plugin fixed it for me. Thank you – user1405990 May 25 '16 at 02:12
  • Hi again, with some time to consider stuff and a bit of Kotlin google-ing -- I don't think the cause here is IN the plugin-s _per se_. **[println](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.io/println.html)** is in the **kotlin.io** package. the Kotlin-stdlib JAR has "kotlin.io" in there. So no problem on the surface. I explicitly included kotlin.io.* -- Result: `Unresolved reference: io`. As a JAR archive, the reference resolution _ought_ to be kindergarten stuff. So what's up!?? – will Apr 28 '17 at 13:41
  • I'm _back_ ... Netbeans people can also 'fix' this -- Drop the netbeans user cache. You can see the location of the Netbeans cache directory by clicking on the Help / About box. Clean -- Stop Netbeans -- Drop cache -- restart Netbeans -- rebuild! _Volia_. – will Apr 28 '17 at 14:21
  • If you're seeing this issue in your Gradle build file only but not project source files, this could help: https://discuss.kotlinlang.org/t/gradle-kotlin-dsl-cannot-access-java-lang-string-error/15562 – AlexO Aug 19 '20 at 01:07
  • what do you mean by plugin versions? android studio has installed 1.8.20 version one. The project also has specifies the same version for kotlin-gradlePlugin. But the error still happens from time to time, especially after using git, switching branches and rebase. Before new Android Studio updates it was working fine – user924 Jul 07 '23 at 14:44
43

UPDATE - 01/2022

The jetbrains thread regarding this issue has moved and is nowhere to be found, so the link below is not valid anymore.

The option, per module, Kotlin -> FIX does not exist anymore and has been that way for years now since this was a temporary patch to deal with integration issues during the early previous releases.


If anyone stumbles across this and NEITHER Invalidate Cache or Update Kotlin's Version work:

  1. First, make sure you can build it from outside the IDE. If you're using gradle, for instance:

    gradle clean build

If everything goes well , then your environment is all good to work with Kotlin.

  1. To fix the IDE build, try the following:

Project Structure -> {Select Module} -> Kotlin -> FIX

As suggested by a JetBrain's member here: https://discuss.kotlinlang.org/t/intellij-kotlin-project-screw-up/597

vinitius
  • 3,212
  • 2
  • 17
  • 22
35

In my case, it was a misconfigured IntelliJ instance.

Project Structure -> SDKs -> Remove and add the Java SDK again

Martín Coll
  • 3,368
  • 3
  • 37
  • 52
18

Ran into this issue. I had to add the following to my build.grade:

apply plugin: 'kotlin-android'

Nick
  • 925
  • 1
  • 8
  • 13
  • I was migrating project from java to kotlin and I faced this problem in one of the modules. Finally this solution worked for me. Thank you. – Susan Thapa Aug 24 '21 at 08:52
12

Ok, i've been here a few times and not entirely sure how or why this happens but reading suggests its a Kotlin/JVM mismatch. I have tried a number of things mentioned on this page but not without complete success. This was the sort of symptom the IDE was displaying in the message panel after trying to run tests via the IDE. However the code panel has no red lines indicating that modules can't be found or imported or anything untoward.

enter image description here

My project (at time of writing this) is a gradle 4.10.2 kotlin 1.3 project in IntelliJ (IntelliJ IDEA 2018.2.5 (Ultimate Edition) Build #IU-182.4892.20, built on October 16, 2018)

For starters though, I invalidated caches and restarted. Then ran a gradle clean build. After rebuilding the project still no joy. I went into the project settings and noticed the compiler versions were not set to java 8, I set the Compiler/Kotlin/Target JVM Version and Compiler/Java/Project Byte Code to 1.8/8 (see below), then ran some tests in the IDE and we are back in business! References resolved in my case.

enter image description here

enter image description here

Opentuned
  • 1,477
  • 17
  • 21
6

A possible solution for standalone Kotlin projects is to include Kotlin standard libs explicitliy inside the root project.

To do that in IntelliJ IDEA:

  • press Ctrl+Shift+A (Search actions or options)
  • type in "Configure kotlin in project" and let it include standard libs for you
4

For me, it was due to the project missing Gradle Libraries in its project structure.

Just add in build.gradle: apply plugin: 'idea'

And then run: $ gradle idea

After that gradle rebuilds dependencies libraries and the references are recognized!

R Lu
  • 69
  • 4
4

Sometimes this could happen because you are trying to use a project with incompatible versions of Kotlin plugin in Gradle with plugin in your IDE. Check the versions of org.jetbrains.kotlin.jvm and other Kotlin plugins in build.gradle, and version of installed kotlin plugin in your IDE, and try to make it similar:

enter image description here

enter image description here

Arkady
  • 1,178
  • 14
  • 35
3

My problem was solved by adding kotlin as follow

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 (pure kotlin)

My error was throw here, because Android Studio create my domain module as pure Java Module and applied plugin as java, and I used it in the my presentation module that is a Android/Kotlin Module

The Android Studio finds and import the path of package but the incompatibillity don't allow the build.

Just remove apply plugin: 'java' and swith to kotlin as follow

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 {
    ..
}

I think that it will be helpfull

Abner Escócio
  • 2,697
  • 2
  • 17
  • 36
2

Check and install Android Studio Updates. This fix the problem.

enter image description here

2

After trying a few steps, this is what worked for me.

Right-click on project > Open Module Settings > Project Settings > Modules
I removed other configs and kept just one, ie. "firstmicroservice - Kotlin"

From Preferences > Build, Execution, Deployment > Compile > Kotlin Compiler

From Preferences > Build, Execution, Deployment > Compile > Java Compiler

From Preferences > Build, Execution, Deployment > Build Tools > Maven > Runner

Once done RUN:
Maven clean
Maven compile
Maven install

Rana Ranvijay Singh
  • 6,055
  • 3
  • 38
  • 54
1

Had the same with IDEA 14.1.5, Kotlin v.1.0.0-beta-1038-IJ141-17.
Kotlin gets its own list entry (like Java) when creating new project, but the only working config was:

New | Project | Java | "Kotlin (Java)" (make sure you have Project SDK configured, too)
use library: Create, "Copy to: lib".

kaay
  • 1,083
  • 1
  • 12
  • 31
1

I tried everything: clean build folders, run gradle clean build, execute AS invalidate cache(x2), reinstall Kotlin plugin, restarting pc.

But in the end after doing all this it still didn't work, but doing also removal from project build.gradle of this line: apply plugin: 'kotlin-android-extensions', gradle sync and then re-adding worked

Ultimo_m
  • 4,724
  • 4
  • 38
  • 60
1

Top Solution not work for me, after some method tries, remove IDEA caches manully works:

caches directory:

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

solution source: KTX issues

Gohan
  • 2,422
  • 2
  • 26
  • 45
1

In my case all settings were fine and I did Invalidate Cache and restart and still I had the problem. I tried below solution and worked for me.

  1. press crtl + shift + alt + s to enter project structure.
  2. In Project Settings select project.
  3. Then in Project SDK click on your java version and select Kotlin instead.
  4. Run the project.
  5. Do all 1 to 4 but again select your jdk.
  6. Re-Run your project.

enter image description here

behrad
  • 1,228
  • 14
  • 21
0

Happened to me today.

My issue was that I had too many tabs open (I didn't know they were open) with source code on them.

If you close all the tabs, maybe you will unconfuse IntelliJ into indexing the dependencies correctly

LeoColman
  • 6,950
  • 7
  • 34
  • 63
  • Actually this make total sense, the reason why you get -ngt score is because you didn't explain it well. If some1 has two project open in IDE let say one with Gradle and one with Maven; running one of the project may lead to unresolved reference. – HA S Aug 29 '19 at 08:25
0

Invalidating caches and updating the Kotlin plugin in Android Studio did the trick for me.

Andre Thiele
  • 3,202
  • 3
  • 20
  • 43
0

I had this issue because the linter was printing that my object was an instance of Foo whereas the compiler couldn't define its type and consider it was an Any object like (It was more complex in my case, the linter show error in below code but the idea is here) :

    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.

To fix it I had to cast my object :

val foo = test() as Foo
Bubu
  • 1,533
  • 14
  • 14
0

I was too getting this error, but i have solved this using below concept.

  1. Restart your intellij idea community edition.
  2. After that, go on the right hand corner to set the configuration for java.

enter image description here

  1. choose configuration setting for all module. then re-run the code. It will work.

This error comes because of not configuring java properly.

Michael Nelles
  • 5,426
  • 8
  • 41
  • 57
0

In my case, I had tried everything to clear cache, Remove dependencies JARs manually and Reload Maven dependencies.

The problem was solved after I enabled all children and Parent POM's for the project:

  1. Goto

Preferences -> Build,Execution,Deployment -> Build Tool -> Maven -> Ignored Files

  1. Uncheck all ignored files and then reapply
  2. Sync Maven dependencies
  3. Clear Cache and Restart IntelliJ (if you are still seeing this error)
chandan
  • 130
  • 7
0

You have a problem with your root build.gradle file

  1. Check versions of org.jetbrains.kotlin:kotlin-gradle-plugin
  2. check versions of com.android.tools.build:gradle

update those version

Tushar Bapte
  • 121
  • 1
  • 4
0

What worked for me was right clicking the project > Maven > Reload project.

0

I was stuck on this IDE bug for half a day. It is certainly a problem related to the compatibility of the integrated Kotlin plugin, but if it is not solved with the various actions explained in the previous answers, the only solution that seems to work is to fully UNINSTALL (remove cache and plugins) and REINSTALL IntelliJ. Probably there are some old plugins that lurking somewhere in the IDE

Matteo Bruni
  • 83
  • 2
  • 10
0

I ran into the same issue, but it was not an intellij issue, rather than an mapping issue with the new Ktor version, so first you may check if you have to migrate the dependencies from 1.6.* to Ktor 2.0.* on this Site:

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

FoldFence
  • 2,674
  • 4
  • 33
  • 57
0

If you use @UtilityClass - lombok lib.

Kotlin is not friendly with that.

For example: You have in java class with annotation @UtilityClass

private final String hello = 'Hello'

You are trying to inject this const to Kotlin class, you will get

'Unresolved reference'

Solution is : make the field static:

private static final String hello = 'Hello'

#@UtilityClass #UnresolvedReference #Kotlin #Java

0

Had the same with IntelliJ IDEA 2021.3.3.

  1. Check you have lastest kotlin plugin version for your IDE (Preferences -> Languages & Frameworks -> kotlin)

  2. Make sure your kotlin version and jvm target in your build.gradle file matches with your project-> setting -> modules-> Kotlin (for me was JVM 17 and kotlin 1.6)

  3. If still have issues just clean IDE caches:

    • File menu -> invalidate caches...(marked VCS option).

    • If still have issues just manual delete it under ~/Library/Caches/JetBrains/<product><version>

-1

Sometimes in similar situations (I don't think it is your problem because your case is very simple) it's worth to check kotlin file package.

If you have Kotlin file within the same package and put there some classes and missed the package declaration it looks inside the IntelliJ that you have classes in the same package but without definition of package the IntelliJ shows you:

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

Przemek Nowak
  • 7,173
  • 3
  • 53
  • 57
-1

I had this problem because I was trying to set up a multiplatform library configurations.

I had deleted all the source sets with their dependencies from the "build.gradle" file but kept the "common" source set.

Native was working fine but the JVM was not able to build and showed your error.

In the end, the solution was to not delete the Source set of the JVM neither it's dependencies

Alaa Sbateen
  • 59
  • 1
  • 3
-1

Another thing I would like to add is that you need to select View -> Tool Windows -> Gradle before you can run the project using the Gradle.

If using the Gradle the project builds and runs normally but using the IntelliJ it doesn't, then this can solve the matter.

jairhumberto
  • 535
  • 1
  • 11
  • 31
-1

Invalidate Intellij Idea cashes and restart: File -> Invalidate Cashes... -> Select necessary items and

Arman
  • 111
  • 1
  • 4
  • This does not provide an answer to the question. Once you have sufficient [reputation](https://stackoverflow.com/help/whats-reputation) you will be able to [comment on any post](https://stackoverflow.com/help/privileges/comment); instead, [provide answers that don't require clarification from the asker](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can-i-do-instead). - [From Review](/review/late-answers/33556657) – JustSightseeing Jan 05 '23 at 00:24
-6

Simplest Solution:

Tools->Kotlin->Configure Kotin in Project

Dharman
  • 30,962
  • 25
  • 85
  • 135