警告:クラスパス内のKotlinランタイムJARファイルは同じバージョンである必要があります


83

次の警告が表示されますが、v1.0.6がどこにあるのかわかりません。

このエラーは、古いKotlinバージョンを含むKotlinライブラリから発生する可能性がありますか?

それを修正する方法、または少なくともkotlin-reflectを明示的にするための提案に従う方法はありますか(1.1)?

ここに画像の説明を入力してください

回答:


95

プロジェクトは、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"
}

公式ドキュメントでこれと関連する警告に関するいくつかの情報を参照してください。


1.1.1にアップグレードするとどうなりますか?この1.1.0の新しい依存関係のために、再度警告が表示されますか?
ycomp 2017

4
いいえ、警告はメジャー/マイナーバージョンが一致しない場合にのみ表示されます。パッチバージョンの更新は相互に完全に互換性があります
Alexander Udalov 2017

26

アプリで使用されている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


それを追加しましたが、それでも同じエラーが発生します。それは私のナットの男...運転している
ジョセフ・Wambura

@GithithuWamburaは、android {}たとえば
Vlad

8

まず、以下の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. または他の答えに従ってください。

最善の方法がわかりません。親切にそれを参照してください。


5

これは、kotlinプロジェクト(android)で短剣を使用していて、kotlinのバージョンが1.7である場合に発生します。

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

以下の依存関係をアプリビルドのgradleレベルに追加するだけです

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

0

警告を回避するために、同じバージョンのstdlib-jdk7kotlin-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" 
         ...
    }

}


-2

私は同じ問題に直面していましたが、それは短剣の間違った注射によるものでした


2
StackOverflowのを使用する前に、このリンクをお読みくださいstackoverflow.com/tourを
アントゥ

2
@Antu正直なところ、ダガーインジェクションを追加して同じメッセージが表示されたので、この回答に問題はありません。完全な解決策ではありませんが、どこを見ればよいかについての指針を提供します。
リカードElimää
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.