[kotlin] 경고 : 클래스 경로의 Kotlin 런타임 JAR 파일은 동일한 버전이어야합니다.

다음 경고가 표시되지만 v1.0.6이 어디에 있는지 잘 모르겠습니다.

이 오류가 이전 Kotlin 버전을 포함하여 어떻게 든 Kotlin 라이브러리에서 발생할 수 있습니까?

그것을 고치는 방법이나 적어도 kotlin-reflect를 명시 적으로 만드는 제안을 어떻게 따를 수 있습니까 (1.1)?

여기에 이미지 설명 입력



답변

프로젝트가 kotlin-stdlib1.1과 kotlin-reflect1.0 에 의존하는 방식으로 구성된 것 같습니다 . 가장 가능성이 높은 경우는 이미 kotlin-stdlib1.1 에 대한 명시 적 종속성이 있지만에 대한 종속성이 없으며 kotlin-reflect일부 다른 라이브러리 (사용자가 의존하는)가 kotlin-reflect1.0에 의존하는 것 입니다.

이것이 사실이라면 해결책은 kotlin-reflect1.1 에 대한 명시적인 종속성을 제공하는 것 입니다.

Maven에서 다음을 추가하십시오 pom.xml.

    <dependencies>
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-reflect</artifactId>
            <version>1.1.0</version>
        </dependency>
    </dependencies>

Gradle에서 다음을 추가하십시오 build.gradle.

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-reflect:1.1.0"
}

공식 문서에서 이에 대한 정보 및 관련 경고 참조하십시오 .


답변

내 앱에서 사용 된 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
        }
    }
}

예 : kotlin_version = 1.3.0


답변

먼저 아래의 gradle 스크립트로 이유를 파악하십시오.

./gradlew app:dependencies

( appGradle 모듈 이름으로 변경 )

+--- project :common
|    +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.61
|    |    +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61
|    |    \--- org.jetbrains:annotations:13.0
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-common:1.3.3
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61
|    +--- org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:0.12.0 -> 0.14.0
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.60 -> 1.3.61

그러면 종속성 트리가 표시됩니다. 문제 종속성을 사용하는 종속성을 확인하십시오.

종속성을 찾은 경우 해결 방법을 결정하십시오.

  1. 종속성의 버전 업그레이드 (종속성의 최신 버전은 최신 문제 종속성의 버전을 참조 할 수 있음)
  2. 또는 종속성에서 문제 종속성 제외
  3. 또는 다른 답변을 따르십시오.

최선의 방법이 무엇인지 잘 모르겠습니다. 친절하게 참조하십시오.


답변

kotlin 프로젝트 (안드로이드)에서 단검을 사용하고 kotlin 버전이 1.7이 될 때 발생합니다.

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

앱 빌드 gradle 레벨에 아래 종속성을 추가하기 만하면됩니다.

  implementation "org.jetbrains.kotlin:kotlin-reflect:1.3.50"


답변

경고를 피하기 위해 동일한 버전의 stdlib-jdk7& kotlin-gradle-plugin종속성을 사용하는지 확인하십시오 . & 둘 다 동일한 버전을 갖는
아래 예를 참조 할 수 있습니다.stdlib-jdk7kotlin-gradle-plugin

앱 수준 build.gradle 파일

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.0"
    ...
}

프로젝트 수준 build.gradle 파일

buildscript {
    dependencies {
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.0"
         ...
    }

}


답변

나는 같은 문제에 직면했지만 Dagger 잘못된 주입 때문이었습니다.


답변