「Kotlin プラグインのバージョンはライブラリのバージョンと同じではありません」という警告 (実際は同じです!) 質問する

「Kotlin プラグインのバージョンはライブラリのバージョンと同じではありません」という警告 (実際は同じです!) 質問する

Android Studio プロジェクトに、 という Java ライブラリ モジュールを追加しましたcore。3 つの Gradle ビルド ファイルは次のようになります。

プロジェクト/ビルド.gradle

buildscript {
    ext.kotlin_version = '1.2.40'
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

コア/ビルド.gradle

apply plugin: 'java-library'
apply plugin: 'kotlin'

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

アプリ/ビルド.gradle

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android { ... }

dependencies {
    implementation project(':core')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    implementation 'com.android.support:appcompat-v7:27.1.1'

    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    testImplementation 'junit:junit:4.12'
}

問題は、 の行で警告 が表示されることですcore/build.gradlekotlin-stdlib-jdk7Plugin version (1.2.40) is not the same as library version (jdk7-1.2.40)のように変更してみました。

implementation "org.jetbrains.kotlin:kotlin-stdlib"

implementation "org.jetbrains.kotlin:kotlin-stdlib:1.2.40"

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.40"

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

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

しかし、警告はまだ残っています。ビルドは正常に実行され、問題なく警告を抑制して無視できることはわかっていますが、なぜこれが起こるのか、どうすれば取り除くことができるのかを本当に知りたいです。Android Studio 3.0.1 を使用しています。これに対する解決策を知っている人はいますか?

ベストアンサー1

から始まるコトリン 1.4デフォルトで追加された標準ライブラリへの依存関係:

マルチプラットフォーム プロジェクトを含むすべての Kotlin Gradle プロジェクトで、stdlib ライブラリへの依存関係を宣言する必要がなくなりました。依存関係はデフォルトで追加されます。

自動的に追加される標準ライブラリは、バージョン管理が同じであるため、Kotlin Gradle プラグインと同じバージョンになります。

プラットフォーム固有のソース セットの場合、ライブラリの対応するプラットフォーム固有のバリアントが使用され、残りの部分には共通の標準ライブラリが追加されます。Kotlin Gradle プラグインは、Gradle ビルド スクリプトの kotlinOptions.jvmTarget コンパイラ オプションに応じて適切な JVM 標準ライブラリを選択します。

リンクKotlin Gradle プラグインのドキュメントへ。

おすすめ記事