I am a beginner in Kotlin App Development. The following error is occurred 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
https://i.stack.imgur.com/yG6Kj.jpg
Is it about updating the module? Then how to update it?
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
https://i.stack.imgur.com/0q6rT.png
And fixed yellow prompt by Android Studio from this implementation "androidx.core:core-ktx:+"
to this implementation "androidx.core:core-ktx:1.5.0"
https://i.stack.imgur.com/F6PUW.png
In my case Problem occurs when I upgrade androidx.core:core-ktx:1.3.1
to androidx.core:core-ktx:1.6.0
In release notes of this library mentioned that
Note: Core and Core-ktx Version 1.5.0 and above versions will only compile against the Android 11 SDK.**
https://developer.android.com/jetpack/androidx/releases/core#core_and_core-ktx_version_150_2
Solution: downgrade your library below to 1.5.0 and sync. if this is the case then the error will be gone.
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'
...
}
Go project build.gradle and update "ext.kotlin_version = 1.5.0"
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
Recently my Jenkins build was failing with similar lines of error messages. And tried below to mitigate the issue:
Possible Reasons:
Offline work mode is ON in the Gradle settings options which failing some dependencies while compilation Updated Android Studio stop supporting older Kotlin version. (very less likely) Incompatible Gradle distribution version wrt Gradle plugin (com.android.tools.build:gradle) Gradle caching issue 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:
Offline work mode should be turned OFF in the Gradle settings options, Restart the Kotlin plugin and restart the Android Studio Remove/upgrade the newly added sdk dependency from your project Validate if the Gradle distribution version is compatible with Android grade plugin here 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 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
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
.
https://i.stack.imgur.com/eXDcJ.png
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'
https://i.stack.imgur.com/m2KSX.png
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
}
you have juste rebuild your project:
Open IntelliJ IDE Build 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
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.
Success story sharing
gradle-6.7.1
togradle-6.9
ingradle-wraper-properties
file and also changing theext.kotlin-version = '1.4.32'
resolve the issue.1.5.31
in aflutter@2.5.2
project fixed it for me.