"Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.5.1, expected version is 1.1.16"

Viewed 174517

I am a beginner in Kotlin App Development. The following error occurs when I tried to build the app -

e: C:/Users/Lenovo/.gradle/caches/transforms-2/files-2.1/32f0bb3e96b47cf79ece6482359b6ad2/jetified-kotlin-stdlib-jdk7-1.5.0.jar!/META-INF/kotlin-stdlib-jdk7.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.5.1, expected version is 1.1.16

enter image description here

Is it about updating the module? Then how to update it?

27 Answers

For someone who is still looking for answer to this, here is the working solution for this problem. In your project level open build.gradle file, increase the ext.kotlin_version from whatever current version that you have like 1.5.0, to the latest stable version 1.6.0 (Whatever is latest at that time). Thanks

You can get latest version from here:

https://kotlinlang.org/docs/releases.html#release-details

Happened to me when updating from Kotlin 1.4.30 to 1.5.0. Seems to be some sort of Gradle caching issue. I was able to resolve it by updating Gradle from 6.7.1 to 6.9 (or any other version).

Just go to gradle-wrapper.properties and change this line from

distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip

to

distributionUrl=https://services.gradle.org/distributions/gradle-6.9-all.zip

I was facing same issue in IntelliJ IDEA Version: Ultimate 2019.3

Issue occurred when I changed jar version multiple times and click on debug button to run the application.

Issue fixed when i used below steps:

Open IntelliJ >> Build >> Rebuild Project.

After that I run the application again and it worked for me.

I updated kotlin versions to latest and it helped me.

Here

enter image description here

And fixed yellow prompt by Android Studio from this implementation "androidx.core:core-ktx:+" to this implementation "androidx.core:core-ktx:1.5.0"

enter image description here

Go project build.gradle and update "ext.kotlin_version = 1.5.0"

This happened to me today when I added a new project to an existing big project with latest Android Studio, but I could not find the above-mentioned ext.kotlin_version anywhere to fix it. Anyway, after comparing the build.gradle file with the one from a new standalone project that works fine, I found out that changing 1.6.0 in here:

dependencies {
    implementation 'androidx.core:core-ktx:1.6.0'
    ...
}

to 1.3.2 fixes the issue:

dependencies {

    implementation 'androidx.core:core-ktx:1.3.2'
    ...
}

I had to update the Kotlin Gradle plugin to match Kotlin standard library. In {project}/build.gradle.

buildscript {
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:{kotlin version}"
    }
}

I also removed callout to dependency on standard library as that is now baked into Gradle based on my dependencies, though this is less directly related. Delete this line in {project}/{app module}/build.gradle:

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:{kotlin version}"
    ...
}

Reference: Exception Error blog post

If anyone face this issue in future kindly check the following versions of dependencies and classpath

ext.kotlin_version = "1.4.32"

Esure that the gradle-wrapper.properties has the compitable distribution url with your kotlin version

distributionUrl=https://services.gradle.org/distributions/gradle-6.9-bin.zip

App level build.gradle check

implementation 'androidx.core:core-ktx:1.5.0'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.3'

Note: Check these dependencies it might be causing the issue, In my case coroutines-android was using 1.6.0-RC2 which is very latest version of coroutine then I checked the github releases and got the right version for my project gradle configuration

You can check the kotlinx-coroutines-android version from github releases section

https://github.com/Kotlin/kotlinx.coroutines/releases

You can also check the core-ktx version from developer.android.com

https://developer.android.com/jetpack/androidx/releases/core

In my case, I don't have a buildScript block or ext.kotlin_version in my ProjectRoot/build.gradle. Instead, there is a plugins block which describe my kotlin version.

plugins {
    id 'com.android.application' version '7.2.2' apply false
    id 'com.android.library' version '7.2.2' apply false
    id 'org.jetbrains.kotlin.android' version '1.5.30' apply false
}

Change org.jetbrains.kotlin.android to 1.7.10, like:

plugins {
    id 'com.android.application' version '7.2.2' apply false
    id 'com.android.library' version '7.2.2' apply false
    id 'org.jetbrains.kotlin.android' version '1.7.10' apply false
}

This finally get worked, hope to help someone.

Recently my Jenkins build was failing with similar lines of error messages. And tried below to mitigate the issue:

Possible Reasons:

  1. Offline work mode is ON in the Gradle settings options which failing some dependencies while compilation
  2. Updated Android Studio stop supporting older Kotlin version. (very less likely)
  3. Incompatible Gradle distribution version wrt Gradle plugin (com.android.tools.build:gradle)
  4. Gradle caching issue
  5. From the error statement it seems the module was compiled with an incompatible version of Kotlin. For example you have added some sdk dependency in your project which was compiled with different (incompatible) kotlin version than your app is using.

Possible Solutions:

  1. Offline work mode should be turned OFF in the Gradle settings options,

  2. Restart the Kotlin plugin and restart the Android Studio

  3. Remove/upgrade the newly added sdk dependency from your project

  4. Validate if the Gradle distribution version is compatible with Android grade plugin here

  5. Change the “distributionUrl” url according to latest version (or higher version) in gradle-wrapper.properties
    Command Line (better way): `./gradlew wrapper --gradle-version X.Y.Z'.

    Manual: change the distributionUrl property in the Wrapper’s gradle-wrapper.properties file.

    find the latest version of Gradle that is going to use in gradle-wrapper.properties from here

  6. Upgrade the Kotlin version: The ext.kotlin.version from whatever version you have, to '1.4.32' or whatever the latest version is available here

Please note there could be many possible reason and so that the solution. In My case the combination of solution#5 & 6 worked well.

After putting off dealing with this for almost a year, the solution was very easy to implement after finding.

I had to replace the deprecated jcenter() with mavenCentral() in my build.gradle file in the "repositories" section.

Uncleared Gradle cache could also be an issue. I faced this same issue and resolved it by deleting .gradle/caches directory in the root folder.

Steps:

  • Delete caches directory in the location, [RootFolder]/.gradle/caches
  • Do Invalidate Caches And Restart
  • Rebuild project

Refer: https://stackoverflow.com/a/23029580/10506244

you have juste rebuild your project:

  1. Open IntelliJ IDE
  2. Build
  3. Rebuild Project

First, we need to know where the conflict comes from.

The binary version 1.5.1 isn't the version of kotlin-stdlib used which can be known by examining the dependency tree. In my case, I was using androidx.core:core-ktx:1.6.0 which depends on org.jetbrains.kotlin:kotlin-stdlib:1.5.10

The expected version depends on the version of kotlin-gradle-plugin used in build.gradle project file.

So in my case, there was incompatibility between androidx.core:core-ktx and kotlin-gradle-plugin version. To resolve the conflict, I had two options. Either upgrade KGP or downgrade ktx.

In build.gradle (Project)

ext.kotlin_version = '1.3.40'     // not compatible with ktx:1.6.0
//  ext.kotlin_version = '1.4.31' // upgrading KGP fixes the issue
dependencies {
    classpath 'com.android.tools.build:gradle:3.5.2'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}

In build.gradle (Module)

//  implementation "androidx.core:core-ktx:1.2.0" // downgrading ktx fixes the issue
implementation "androidx.core:core-ktx:1.6.0"     // not compatible with kotlin_version = '1.3.40'

In gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip

The rule here is to choose a ktx version whose release date is close to the release date of KGP. Links of both can be found below.

https://developer.android.com/jetpack/androidx/releases/core

https://developer.android.com/studio/releases

https://developer.android.com/studio/releases/past-releases

https://developer.android.com/studio/releases/gradle-plugin

For me I had to update Android Studio to 4.2.2. Update gradle to 7.0. As well as perform the kotlin migration(might not have had anything to do with it). And lastly updated my ext.kotlin_version to 1.5.20. After all of that I invalidated caches and restarted Android studio.

For me updating the kotlin plugin, kotlin version and distribution url worked Kotlin Plugin

kotlin_version = '1.4.32'

AND

distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.1-all.zip

I had this problem yesterday. The solution is to change the kotlin version in build.gradle to 1.5.0 and change the Gradle version in the project structure to 6.9.

ext.kotlinVersion = '1.5.0'

enter image description here

After 4 hours testing different versions of Kotlin being my project NOT A KOTLIN PROJECT this solution solved my life:

Go to Intellij and disable the Kotlin plugin. Then compile everything again.

In your build.gradle file, increase the ext.kotlin_version to 1.6.0

ext.kotlin_version = '1.6.0'

I just updated everything to the latest version. And the latest mentioned by the android studio itself.

e.g

    ext.kotlin_version = '1.5.20'

    dependencies {
        classpath 'com.android.tools.build:gradle:4.2.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.4.0-alpha04"
    }

And

distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-all.zip

In gradle-wrapper.properties

Create new project again helped for me :| And if you need to fix another project you may try copy android/build.gradle and android/app/build.gradle from new flutter project template to an other project.

Finally, the working solution is that we need to upgrade your kotlin version from your project build.gradle file.

The actual issue why this happens is because of incompatibility with the kotlin compiler version and the gradle plugin version

I spawned up a new Android project in Chipmunk and I find that the kotlin_version variable under the ext block is not there and build.gradle will hardcode the kotlin version

So change your build.gradle (global) like this

buildscript {
    ext {
        compose_version = '1.2.0-beta02'
        kotlin_version = '1.6.21'// This might be missing, you can add it
    }
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:7.2.0"
    


// Do not hardcode this version, instead make it rely on the global variable you declared on top

//No
//classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.20"
//Yes
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "com.google.dagger:hilt-android-gradle-plugin:2.38.1"
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}


Why simply upgrading the Kotlin version works: At least one of your dependencies was compiled against a version of Kotlin that is not backward compatible with the Kotlin version you are compiling your app or lib against.

Alternatively, you can find out which dependency it is and downgrade it. However, this can be limiting, so upgrade Kotlin versions if you can.

Remember the pain, and if you ever write a Kotlin library for others to use, consider being conservative in the Kotlin version you compile against, and list that version in the release notes.

I just added a new version in android/build.gradle file. In fact, if you get kotlin version error, it will take you to kotlin website, you can copy the version from there and put in android/build.gradle file. But sometimes you may need to get correct version from

 dependencies {
    classpath 'com.android.tools.build:gradle:7.1.2'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
} 

If you hover on it, it will tell you the correct one and put it there More here https://youtu.be/WTEPNOQdpB0

enter image description here

For someone who is still looking for answer to this, here is the working solution for this problem. In your project level open build.gradle file, increase the ext.kotlin_version from whatever current version that you have like 1.3.61, to the version 1.4.0 (Whatever is latest at that time). Thanks

Related