Tob*_*off 7 android kotlin android-studio android-gradle-plugin
我刚刚在我的Android项目中启用了Kotlin,我偶然发现了一个警告.在第二次构建(Build - > Rebuild Project)之后,此警告显示在Messages下:
Warning:Runtime JAR files in the classpath should have the same version. These files were found in the classpath:
~/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.2.10/85fe1811f3e586d0cc53aba1394d8089f1862215/kotlin-stdlib-jdk8-1.2.10.jar (version 1.2)
~/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-reflect/1.2.10/19bc012f8c4cd6b705bd6512263777cc19bcf259/kotlin-reflect-1.2.10.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)
~/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.2.10/cfe8b616b3bf0811ef70863c86b745a2e767a66e/kotlin-stdlib-jdk7-1.2.10.jar (version 1.2)
~/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.2.10/b9bf650516989595a5390e5a54181e16347208ac/kotlin-stdlib-1.2.10.jar (version 1.2)
Run Code Online (Sandbox Code Playgroud)
看起来第二个版本包含过时kotlin-stdlib-jre7-1.1.51.jar的缓存.在干净的构建(构建 - >清理项目)之后,警告消失,下一个重建项目再次启动它.
我正在使用Android Studio 3.0.1并且我明确地将Kotlin依赖项包含在版本中:
的build.gradle
buildscript {
ext {
// shared build properties
kotlin_version = '1.2.10'
buildToolsVersion = '27.0.2'
minSdkVersion = 15
targetSdkVersion = 27
compileSdkVersion = 27
}
repositories {
jcenter()
google()
}
dependencies {
classpath "com.android.tools.build:gradle:3.0.1"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlin_version}"
}
}
Run Code Online (Sandbox Code Playgroud)
应用程序/的build.gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlin_version}"
implementation "org.jetbrains.kotlin:kotlin-reflect:${kotlin_version}"
[...]
}
Run Code Online (Sandbox Code Playgroud)
同样在我们的travis构建中显示警告.因此,这不仅是我本地设置的问题.即使它只是一个警告,我发布一个包含冲突版本的apk也感觉不舒服.
alb*_*elu 10
你已经修复了它更新你的依赖项,但我会在这里回答链接一个相关的问题.
您正确配置了项目依赖项并将Kotlin插件更新为1.2.
但是你的项目取决于Realm版本4.3.1,他们在4.3.2版本中修复了这个问题.
您可以通过命令或AS 3.1中的新构建选项卡找到导致问题的依赖项.
如果您的目标是JDK 7或JDK 8,则可以使用Kotlin标准库的扩展版本,其中包含在新JDK版本中添加的API的其他扩展功能.
而不是
kotlin-stdlib,使用以下依赖项之一:Run Code Online (Sandbox Code Playgroud)compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7" compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"在Kotlin 1.1.x中,使用
kotlin-stdlib-jre7而kotlin-stdlib-jre8不是.
如果自动解决方案无法正常工作,请更新其他依赖项(请参阅第5点).
修改您的Gradle配置.为了构建用Kotlin编写的Android项目:
kotlin-androidgradle插件并将其应用于您的项目.kotlin-stdlib依赖项.这些操作也可以通过调用操作在IntelliJ IDEA/AS中自动执行:
工具| Kotlin | 在Project中配置Kotlin
检查Kotlin插件更新:
工具| Kotlin | 配置Kotlin插件更新
Sirrah于2017年12月27日评论:
在1.2.x版本中,Kotlin stdlib被重命名.看到这里.
旧名称
kotlin-stdlib-jre7改为kotlin-stdlib-jdk7.该库在
realm-library和中引用kotlin-extensions.
将Gradle Wrapper更新到4.4.1并更新到Kotlin 1.2 (#5642)
更新Gradle Wrapper并更新到Kotlin 1.2
kotlin-stdlib-jre7 - > kotlin-stdlib-jdk7
./gradlew -q dependencies app:dependencies --configuration variantDebugCompileClasspath
Run Code Online (Sandbox Code Playgroud)
从Android Studio 3.1 Beta 1开始,您可以使用新的构建选项卡来查找冲突依赖项:
在这种情况下,您删除了警告并修复了将Realm版本更新为4.3.2的问题:
考虑到下载的顺序依赖性,也可以在Travis-ci构建中检查它:
| 归档时间: |
|
| 查看次数: |
5065 次 |
| 最近记录: |