Reputation: 369
I can't figure out what problem I can get if I have different Kotlin versions in the project and in the dependencies of that project.
Option 1:
1.3.72
okhttp
for example) include Kotlin 1.4.10
. (We now use Kotlin 1.4.x functional interfaces for Authenticator, Interceptor, and others.)Option 2:
1.4.0
1.3.71
In option 2 I get next warning:
w: Runtime JAR files in the classpath should have the same version. These files were found in the classpath:
/.gradle/caches/transforms-2/files-2.1/ab41544fa06f7b55dec847efe3b9899c/jetified-kotlin-stdlib-jdk7-1.3.71.jar (version 1.3)
.gradle/caches/transforms-2/files-2.1/a4c6c3b949eb40b555dea1468ae75f87/jetified-kotlin-stdlib-1.4.10.jar (version 1.4)
.gradle/caches/transforms-2/files-2.1/f98f62bf33e752598311020043618780/jetified-kotlin-stdlib-common-1.4.10.jar (version 1.4)
w: Some runtime JAR files in the classpath have an incompatible version. Consider removing them from the classpath
Upvotes: 8
Views: 4512
Reputation: 3032
If your project target Java 8 so just include the dependency on that Java version
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
Follow the same rule if you target Java 6 or 7.
You clarify more about that in the post https://medium.com/@mbonnin/the-different-kotlin-stdlibs-explained-83d7c6bf293
Upvotes: 1
Reputation: 62
What problems you can get? When the differences are not just in the minor release version (like 1.3.70 / 1.3.72) but are between a 1.3.x and a 1.4.x release, you risk e.g. that one library will use a function that has changed its signature in the new release, and so there will be a runtime error. This does not necessarily happen, but it can happen (unless you know for certain that your dependency libraries do no use any functions that have changed).
Upvotes: 3
Reputation: 773
/.gradle/caches/transforms-2/files-2.1/ab41544fa06f7b55dec847efe3b9899c/jetified-kotlin-stdlib-jdk7-1.3.71.jar (version 1.3)
this can be resolved with including this in your app build.gradle dependencies:
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
Also, I have personally learned to add the following dependencies to avoid these errors:
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
Also, make sure you have ext.kotlin_version = "1.4.10"
in your project build.gradle
Upvotes: 11