다음 경고가 표시되지만 v1.0.6이 어디에 있는지 잘 모르겠습니다.
이 오류가 이전 Kotlin 버전을 포함하여 어떻게 든 Kotlin 라이브러리에서 발생할 수 있습니까?
그것을 고치는 방법이나 적어도 kotlin-reflect를 명시 적으로 만드는 제안을 어떻게 따를 수 있습니까 (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>
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
android {}
예를 들어 브레이스없이 app build.gradle에 직접 넣었습니다
먼저 아래의 gradle 스크립트로 이유를 파악하십시오.
./gradlew app:dependencies
( app
Gradle 모듈 이름으로 변경 )
+--- 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
그러면 종속성 트리가 표시됩니다. 문제 종속성을 사용하는 종속성을 확인하십시오.
종속성을 찾은 경우 해결 방법을 결정하십시오.
최선의 방법이 무엇인지 잘 모르겠습니다. 친절하게 참조하십시오.
경고를 피하기 위해 동일한 버전의 stdlib-jdk7
& kotlin-gradle-plugin
종속성을 사용하는지 확인하십시오 . & 둘 다 동일한 버전을 갖는
아래 예를 참조 할 수 있습니다.stdlib-jdk7
kotlin-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 잘못된 주입 때문이었습니다.