warning: Kotlin runtime JAR files in the classpath should have the same version

Kotlin

Kotlin Problem Overview


I get the following warning, but I'm not sure where v1.0.6 resides.

Is it possible this error comes from a Kotlin library somehow including an old Kotlin version?

Any ideas how to fix it or at least how can I follow the suggestion to make kotlin-reflect explicit (1.1) ?

enter image description here

Kotlin Solutions


Solution 1 - Kotlin

It seems that your project is configured in such a way that you depend on kotlin-stdlib 1.1 and kotlin-reflect 1.0. The most likely case is that you already have an explicit dependency on kotlin-stdlib 1.1 but have no dependency on kotlin-reflect, and some other library (which you depend on) depends on kotlin-reflect 1.0.

If that indeed is the case, the solution is to provide an explicit dependency on kotlin-reflect 1.1.

In Maven, add this to pom.xml:

    <dependencies>
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-reflect</artifactId>
            <version>1.1.0</version>
        </dependency>
    </dependencies>

In Gradle, add this to build.gradle:

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-reflect:1.1.0"
}

See some info about this and related warnings in the official docs.

Solution 2 - Kotlin

firstly, figure out the reason by the gradle script below

./gradlew app:dependencies

(change app to your gradle module name)

+--- project :common
|    +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.61
|    |    +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61
|    |    \--- org.jetbrains:annotations:13.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-common:1.3.3
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61
|    +--- org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:0.12.0 -> 0.14.0
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.60 -> 1.3.61

Then, the dependency tree will be shown. check which dependency use the issue dependency.

If you found the dependency, decide how to solve it.

  1. upgrade the dependency's version(the dependency's latest version may refer to latest issue dependency's version)
  2. or exclude the issue dependency from the dependency
  3. or follow other answers.

I'm not sure what is the best way. kindly just refer to it.

Solution 3 - Kotlin

I fixed warning by overwriting kotlin version used in my app

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'org.jetbrains.kotlin' && requested.name == 'kotlin-reflect') {
            details.useVersion kotlin_version
        }
    }
}

e.g. kotlin_version = 1.3.0

Solution 4 - Kotlin

it happens when you are using the dagger in a kotlin project(android) and you have the kotlin version to be 1.7 i.e

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

all you have to do is add the dependency below to your app build gradle level

  implementation "org.jetbrains.kotlin:kotlin-reflect:1.3.50"

Solution 5 - Kotlin

replace this

  implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.4.30'

with

implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.30'

the version of library should be same as plugin in project level

 classpath org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.30

Solution 6 - Kotlin

Make sure you use the same version of stdlib-jdk7 & kotlin-gradle-plugin dependencies to avoid warnings.
You can refere below example where stdlib-jdk7 & kotlin-gradle-plugin both have the same version > app-level build.gradle file

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.0"
    ...
}

> project-level build.gradle file

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

}

Solution 7 - Kotlin

The Kotlin version in build.gradle and the one bundled with your IDE are of different versions. Check the kotlin version in build.gradle (app) and in Tools -> Kotlin -> Configure Kotlin Plugin Updates.

Solution 8 - Kotlin

When this happens for the Lint task, one can list the dependencies with:

./gradlew -q dependencies app:dependencies --configuration lintClassPath

Which shows that eg. kotlin-stdlib-jdk8:1.4.32 is being used:

 +--- org.jetbrains.kotlin:kotlin-reflect:1.4.32 (*)
 \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 (*)

I've wrote a Gradle script, which equalizes all the Kotlin library versions:

// Runtime JAR files in the classpath should have the same version.
configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def kotlinVersion = "1.6.0"
        def requested = details.requested
        if (requested.group == 'org.jetbrains.kotlin') {
            List<String> list = ['kotlin-stdlib', 'kotlin-stdlib-jdk7', 'kotlin-stdlib-jdk8', 'kotlin-stdlib-common']
            if (list.contains(requested.name)) { details.useVersion kotlinVersion }
        }
    }
}

There is no other way, because some older versions are being pulled in by build tools.
One likely could also add kotlin-reflect into the List<String> list (not tested).

Solution 9 - Kotlin

FOR ANDROID DEVELOPERS WITH ERROR OCCURING AT XML UNRECOGNIZED FILE

It if it in Android and thew error appears by not recognizing a xml file, you could search for some error in the xml folder files(in my case, one of the files had tag duplicated)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionycompView Question on Stackoverflow
Solution 1 - KotlinAlexander UdalovView Answer on Stackoverflow
Solution 2 - Kotlinjeonghyeon kimView Answer on Stackoverflow
Solution 3 - KotlinVladView Answer on Stackoverflow
Solution 4 - KotlinMusa Abdul WadudView Answer on Stackoverflow
Solution 5 - KotlinMubashir MurtazaView Answer on Stackoverflow
Solution 6 - KotlinNiral DhameliyaView Answer on Stackoverflow
Solution 7 - Kotlinrohegde7View Answer on Stackoverflow
Solution 8 - KotlinMartin ZeitlerView Answer on Stackoverflow
Solution 9 - KotlinAury0nView Answer on Stackoverflow