我决定将几个Kotlin文件添加到AS 3.0中的现有Java Android项目中。
一旦我添加了Kotlin文件,我就让助手在我的build.gradle
文件中添加相应的行,特别是:
project build.gradle
buildscript {
ext.kotlin_version = '1.2.21'
//...
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
app build.gradle
// top of file
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
//....
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
不幸的是,所有构建现在都会产生此警告:
Warning:Runtime JAR files in the classpath should have the same version. These files were found in the classpath:
/Users/sddsfsd/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.2.21/88bfff5aa470143a83b0bc5ec00c0be8cabd7cad/kotlin-stdlib-jdk7-1.2.21.jar (version 1.2)
/Applications/Android Studio.app/Contents/gradle/m2repository/org/jetbrains/kotlin/kotlin-stdlib-jre7/1.1.51/kotlin-stdlib-jre7-1.1.51.jar (version 1.1)
/Users/sddsfsd/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.2.21/d64187eb2d9d1521be3421aa8c6774a8625cdde8/kotlin-stdlib-1.2.21.jar (version 1.2)
为什么Android Studio在类路径中有自己的旧版Kotlin?如何删除它?
答案 0 :(得分:7)
为什么我在类路径中有不同版本的Kotlin JAR?
您有不同的版本,因为您的某些依赖项依赖于Kotlin 1.1版本。
为什么Android Studio在其中拥有自己的旧版Kotlin 类路径?如何删除它?
更新您的依赖项,例如我解释here in a related question about renamed stdlib-jre7并已解释here for conflictive dependencies that have not been renamed。
Kotlin reference - binary compatibility warnings:
类路径中的运行时JAR文件应具有相同的版本。
类路径中的某些运行时JAR文件具有不兼容的版本。
考虑从类路径中删除它们。
这意味着您依赖于不同的库 版本,例如1.1标准库和1.0反射 库。
为防止运行时出现细微错误,我们建议您使用相同的错误 所有Kotlin库的版本。在这种情况下,请考虑添加 显性依赖。
在您的情况下,间接依赖项已重命名,您需要更新使用它的库:
通过命令或自AS 3.1
以来的构建选项卡查找冲突依赖项./gradlew -q dependencies app:dependencies --configuration variantDebugCompileClasspath
In the related question,警告已删除,将Realm版本更新为4.3.2。
注意:我检查了我的路径,但我也有过时的依赖项,但如果你不使用它就没关系。