警告:类路径中的Kotlin运行时JAR文件应具有相同的版本
我收到以下警告,但我不确定v1.0.6驻留在哪里 这个错误是否可能来自于包含旧Kotlin版本的Kotlin库 有什么想法可以解决这个问题,或者至少我可以按照建议让kotlin反映明确(1.1)警告:类路径中的Kotlin运行时JAR文件应具有相同的版本,kotlin,Kotlin,我收到以下警告,但我不确定v1.0.6驻留在哪里 这个错误是否可能来自于包含旧Kotlin版本的Kotlin库 有什么想法可以解决这个问题,或者至少我可以按照建议让kotlin反映明确(1.1) 您的项目配置似乎依赖于kotlin stdlib1.1和kotlin reflect1.0。最可能的情况是,您已经明确依赖于kotlin stdlib1.1,但不依赖于kotlin reflect,而其他一些库(您所依赖的库)依赖于kotlin reflect1.0 如果确实如此,那么解决方案是提供对k
您的项目配置似乎依赖于
kotlin stdlib
1.1和kotlin reflect
1.0。最可能的情况是,您已经明确依赖于kotlin stdlib
1.1,但不依赖于kotlin reflect
,而其他一些库(您所依赖的库)依赖于kotlin reflect
1.0
如果确实如此,那么解决方案是提供对kotlin reflect
1.1的显式依赖
在Maven中,将其添加到pom.xml
:
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
<version>1.1.0</version>
</dependency>
</dependencies>
请参阅有关此警告和相关警告的一些信息。我通过覆盖应用程序中使用的kotlin版本修复了警告
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
当您在kotlin项目(android)中使用dagger,并且kotlin版本为1.7,即
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
您所要做的就是将下面的依赖项添加到您的应用程序构建渐变级别
implementation "org.jetbrains.kotlin:kotlin-reflect:1.3.50"
首先,通过下面的gradle脚本找出原因
./gradlew app:dependencies
(将app
更改为您的gradle模块名称)
然后,将显示依赖关系树。
检查哪个依赖项使用问题依赖项
如果发现依赖项,请决定如何解决它
我不知道什么是最好的方法。请参考它。确保您使用相同版本的
stdlib-jdk7
&kotlin-gradle-plugin
依赖项以避免警告。您可以参考下面的示例,其中
stdlib-jdk7
和kotlin-gradle-plugin
都有相同的版本
应用程序级build.gradle文件
项目级build.gradle文件
}适用于在XML无法识别的文件中发生错误的ANDROID开发人员 如果它在Android中出现错误,并且没有识别xml文件,则可以在xml文件夹文件中搜索某些错误(在我的情况下,其中一个文件的标记重复)替换此错误
implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.4.30'
与
库的版本应与项目级别的插件相同
classpath org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.30
升级到1.1.1时会发生什么?我会因为这个1.1.0新的依赖关系再次收到警告吗?不会,只有当主/次版本不匹配时,警告才会出现。我们正在保持补丁版本更新在彼此之间完全兼容,
pom.xml
文件应该位于哪里?我添加了这一点,但仍然得到相同的错误。这让我快疯了…@GithithuWambura把它直接放在app build.gradle中,而不用在android{}
e.g./*或者*/configurations.all{resolutionStrategy{eachDependency{if((request.group==“org.jetbrains.kotlin”)&(!request.name.startsWith(“kotlin gradle”)){useVersion(kotlin_version)}}}我尝试过这个,但只更改了错误消息。运气不好。尝试重新编译旧项目会变成一场噩梦!
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.0"
...
}
buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.0"
...
}
implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.4.30'
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.30'
classpath org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.30