programing

경고 "Kotlin 플러그인 버전이 라이브러리 버전과 동일하지 않습니다." (하지만 그렇습니다!)

starjava 2023. 8. 10. 18:08
반응형

경고 "Kotlin 플러그인 버전이 라이브러리 버전과 동일하지 않습니다." (하지만 그렇습니다!)

저는 안드로이드 스튜디오 프로젝트에서 자바 라이브러리 모듈을 추가했는데, 이를 제가 부르는 것입니다.core제 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
}

코어/빌드.그레이들

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

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

app/build.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.gradle,그kotlin-stdlib-jdk7라인은 나에게 경고를 주고 있습니다.Plugin 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"

하지만 경고는 여전히 거기에 있습니다.빌드는 여전히 성공적으로 실행되고 있으며, 경고를 문제 없이 누르고 무시할 수 있다는 것을 알고 있지만, 왜 이런 일이 일어나고 있는지, 어떻게 제거할 수 있는지 정말 알고 싶습니다.안드로이드 스튜디오 3.0.1을 사용하고 있습니다.이것에 대한 해결책을 아는 사람이 있습니까?

기본적으로 추가된 표준 라이브러리에 대한 Kotlin 1.4 종속성부터 시작합니다.

다중 플랫폼 프로젝트를 포함한 모든 Kotlin Gradle 프로젝트에서 더 이상 stdlib 라이브러리에 대한 종속성을 선언할 필요가 없습니다.종속성은 기본적으로 추가됩니다.

자동으로 추가되는 표준 라이브러리는 버전이 동일하므로 Kotlin Gradle 플러그인의 동일한 버전이 됩니다.

플랫폼별 소스 세트의 경우 해당 플랫폼별 라이브러리 변형이 사용되고 나머지에는 공통 표준 라이브러리가 추가됩니다.Kotlin Gradle 플러그인은 Gradle 빌드 스크립트의 kotlinOptions.jvmTarget 컴파일러 옵션에 따라 적절한 JVM 표준 라이브러리를 선택합니다.

Kotlin Gradle 플러그인 설명서 링크.

이것은 Kotlin 플러그인의 버그입니다.코틀린 문제 추적기에 문제를 제기했습니다.메시지를 무시할 수 있습니다.

편집: JetBrains는 이 문제를 "Kotlin 라이브러리와 Gradle 플러그인 버전이 다르다"의 중복으로 표시했습니다. 비 JVM 종속성에 대한 검사 false positive.

솔루션의 경우 "org.jetbrain"이라는 라인 구현을 제거했습니다.애플리케이션 수준 Gradle에서 kotlin:kotlin-stdlib-jdk7:$kotlin_version"이 표시되고 경고가 사라집니다. Kotlin 페이지에서 "다중 플랫폼을 포함한 모든 Kotlin Gradle 프로젝트에서 stdlib 라이브러리에 대한 종속성을 더 이상 선언할 필요가 없습니다.종속성은 기본적으로 추가됩니다.

The automatically added standard library will be the same version of the Kotlin Gradle plugin, since they have the same versioning.

For platform-specific source sets, the corresponding platform-specific variant of the library is used, while a common standard library is added to the rest. The Kotlin Gradle plugin will select the appropriate JVM standard library depending on the kotlinOptions.jvmTarget compiler option of your Gradle build script."

kotlin 버전을 업그레이드한 후 이 문제가 발생할 수 있습니다. 사실 이전 버전은 여전히 캐시에 있습니다. 이 경우 다음 단계를 수행해야 합니다.

  1. 캐시 무효화
  2. 프로젝트 정리
  3. 그라들 파일과 프로젝트 동기화

이제 당신의 경고는 사라질 것입니다.

[build.gradle(모듈)]

dependencies {
    implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.5.10'
    implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.10'
    ...
}

프로젝트가 자동으로 추가되었습니다.

(implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.10') 

프로젝트 빌드 파일로 이동합니다.구현을 모듈 파일로 이동하고 제거한 후

(implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.10')

경고가 사라졌습니다.'stdlib'은 모듈 파일의 'stdlib-jdk'와 일치해야 합니다.

저는 Kotlin과 Firebase를 사용하는 동안 같은 문제에 직면했습니다.저는 모든 종속성을 최신 버전으로 업그레이드해야 했습니다.

참고: kotlin-reflect 버전과 kotlin-stdlib 버전이 동일합니다.

여러 날이 지난 후에 나는 이 문제를 해결했습니다. kotlin_version을 '1.4.32'로 업데이트하십시오.

번호를 of the gradle과 합니다.app최신 버전으로, 그리고 문제가 해결되었습니다.

는 는이유 때문입니다.kotlin-stdlib버전이 app/.gradleapp/build.gradle에서 할 수 .

자세한 내용은 이 답변을 참조하십시오.

언급URL : https://stackoverflow.com/questions/49956051/warning-kotlin-plugin-version-is-not-the-same-as-library-version-but-it-is

반응형