次の警告が表示されますが、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 {}
たとえば
まず、以下の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
次に、依存関係ツリーが表示されます。どの依存関係が問題の依存関係を使用しているかを確認してください。
依存関係を見つけた場合は、それを解決する方法を決定します。
最善の方法がわかりません。親切にそれを参照してください。
これは、kotlinプロジェクト(android)で短剣を使用していて、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-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"
...
}
}
私は同じ問題に直面していましたが、それは短剣の間違った注射によるものでした