警告:类路径中的Kotlin运行时JAR文件应具有相同的版本

警告:类路径中的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

我收到以下警告,但我不确定v1.0.6驻留在哪里

这个错误是否可能来自于包含旧Kotlin版本的Kotlin库

有什么想法可以解决这个问题,或者至少我可以按照建议让kotlin反映明确(1.1)


您的项目配置似乎依赖于
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