Dmitry
Dmitry

Reputation: 369

different kotlin versions in android project

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:

Option 2:

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

Answers (3)

Filipe Bezerra de Sousa
Filipe Bezerra de Sousa

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

Funny
Funny

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

vt-dev0
vt-dev0

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

Related Questions