경고: 'variant.getJavaCompile()' API가 더 이상 사용되지 않으므로 'variant.getJavaCompileProvider()'로 대체되었습니다.
Gradle을 동기화할 때 갑자기 다음 오류가 발생합니다.
경고: 'variant.getJavaCompile()' API는 더 이상 사용되지 않으며 'variant.getJavaCompileProvider()'로 대체되었습니다.그것은 2019년 말에 제거될 것입니다.자세한 내용은 https://d.android.com/r/tools/task-configuration-avoidance 관련 모듈: 앱을 참조하십시오.
난 이걸 가지고 있다.build.gradle
모듈의 : 다음과 같습니다.
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'io.fabric'
android {
compileSdkVersion 28
buildToolsVersion "28.0.2"
defaultConfig {
applicationId "..."
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "..."
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
versionNameSuffix = version_suffix
[...]
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
[...]
}
debug {
[...]
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.61"
implementation 'androidx.appcompat:appcompat:1.0.0-rc02'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation "com.android.support:preference-v7:28.0.0"
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
implementation 'com.google.android.material:material:1.0.0-rc02'
[...]
}
앱을 올바르게 컴파일할 수는 있지만, 조금 귀찮고, 제가 보기에 2019년 말에 무언가가 작동을 멈출 것 같습니다.그것이 무엇이고 어떻게 해결할 것인지에 대한 아이디어가 있습니까?
3.3.0으로 업데이트한 후 이 문제가 발생합니다.
gradle 파일의 오류 상태를 수행하지 않으면 일부 플러그인이 여전히 최신 API로 업데이트되지 않은 것이 원인입니다.어떤 플러그인인지 확인하려면 다음을 수행합니다(3.3.0 발표의 "오래된 API를 사용할 때 더 나은 디버깅 정보" 참조).
- gradle.properties 파일에 'android.debug.oversoledApi=true'를 추가하면 오류가 더 자세히 기록됩니다.
- 다시 시도하여 로그 세부 정보를 읽습니다."문제가 있는" 플러그인의 흔적이 있을 것입니다.
- 식별할 때 사용하지 않도록 설정하고 문제가 사라졌는지 확인합니다.
- 플러그인의 허브 페이지로 이동하여 자세한 로그와 명확한 설명이 포함된 문제를 생성하여 개발자가 모두를 위해 더 빨리 수정할 수 있도록 도와줍니다.
- 그들이 그것을 고치는 동안 인내심을 가지거나, 당신이 그것을 고치고 개발자들을 위한 홍보를 만듭니다.
다른 사람들에게 도움이 되길 바랍니다.
이 문제는 이제 Fabric Gradle 버전 1.30.0 업데이트를 통해 해결되었습니다.
업데이트 릴리스:2019년 3월 19일
다음 링크를 참조하십시오. https://docs.fabric.io/android/changelog.html#march-15-2019
프로젝트 수준 Gradle에서 클래스 경로 종속성을 업데이트하십시오.
buildscript {
// ... repositories, etc. ...
dependencies {
// ...other dependencies ...
classpath 'io.fabric.tools:gradle:1.30.0'
}
}
저의 경우 gms services 4.3.0에서 발생했습니다.그래서 다음으로 변경해야 했습니다.
com.google.gms:google-services:4.2.0
실행하여 이를 찾았습니다.
gradlew sync -Pandroid.debug.obsoleteApi=true
말기에Android Studio에서 보기 -> 도구 창 -> 터미널로 이동합니다.
이것은 단지 경고일 뿐이며 플러그인 업데이트로 2019년 이전에 수정될 것이므로 걱정하지 마십시오.호환 가능한 버전의 플러그인과 Gradle을 사용하는 것이 좋습니다.
더 나은 경험과 성능을 위해 플러그인 버전과 Gradle 버전을 여기에서 확인할 수 있습니다.
https://developer.android.com/studio/releases/gradle-plugin
안정된 버전을 사용하여 부드럽고 경고/오류가 없는 코드를 사용해 보십시오.
저도 같은 문제에 직면했습니다.그리고 얼마 동안 검색해 본 결과, 최신 버전의 소프트웨어를 사용했기 때문에 경고가 발생하고 있다는 것을 알게 되었습니다.google-services
플러그인(버전 4.3.0).참고로 저는 애플리케이션에서 Firebase 기능에 이 플러그인을 사용하고 있었습니다.내가 한 일은 내 것을 격하시키는 것뿐이었습니다.google-services
다음과 같이 build.gradle(Project) 수준 파일의 buildscript에 플러그인이 있습니다.
buildscript{
dependencies {
// From =>
classpath 'com.google.gms:google-services:4.3.0'
// To =>
classpath 'com.google.gms:google-services:4.2.0'
}
}
추가android.debug.obsoleteApi=true
의 신에게에.gradle.properties
경고 로그의 영향을 받는 모듈이 표시됩니다.
사용되지 않는 기능을 업데이트합니다.
variant.javaCompile
variant.javaCompileProvider
variant.javaCompile.destinationDir
variant.javaCompileProvider.get().destinationDir
합니다.build.gradle
:
dependencies {
classpath 'com.google.gms:google-services:4.2.0'
}
이것은 빌드 도구가 두 가지 이유로 내뱉은 경고입니다.
플러그인 중 하나가 TaskProvider 대신 Task에 의존하고 있는데, 우리가 할 수 있는 일이 별로 없습니다.
태스크 공급자를 지원하는 태스크의 사용을 구성했습니다.
WARNING: API 'variant.getGenerateBuildConfig()' is obsolete and has been replaced with 'variant.getGenerateBuildConfigProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoidance
WARNING: API 'variant.getJavaCompile()' is obsolete and has been replaced with 'variant.getJavaCompileProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoidance
WARNING: API 'variant.getMergeResources()' is obsolete and has been replaced with 'variant.getMergeResourcesProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoidance
아래와 같이 스니펫을 확인하고 업데이트하십시오.
android {
<library|application>Variants.all { variant ->
/* Disable Generating Build config */
// variant.generateBuildConfig.enabled = true // <- Deprecated
variant.generateBuildConfigProvider.configure {
it.enabled = true // Replacement
}
}
}
마찬가지로 다음의 용도를 찾습니다.'variant.getJavaCompile()'
또는'variant.javaCompile'
,'variant.getMergeResources()'
또는'variant.mergeResources'
위와 같이 교체합니다.
Gradle 버전을 다운그레이드하는 것이 저에게 도움이 되었습니다.
classpath 'com.android.tools.build:gradle:3.2.0'
저의 경우 Kotlin(Plugin 및 stdLib) 버전을 1.3.1로 업그레이드하여 해당 경고를 해결했습니다.기존 Kotlin 버전을 다음으로 대체하여 전체 프로젝트에서 Kotlin 버전을 업데이트합니다.
ext.kotlin_version = '1.3.50'
classpath 'com.android에서 돌아갑니다.tools.build:gradle:3.3.0-alpha13'을(를) 클래스 경로 'com.message'에 연결합니다.tools.build:그래들:3.2.0'
이것은 나에게 효과가 있었습니다.
Gradle을 Gradle로 업데이트 중: 3.3.0
기본 '조립' 작업은 일반 변형 모델에만 적용됩니다.테스트 변형도 추가합니다.
android.testVariants.all { variant ->
tasks.getByName('assemble').dependsOn variant.getAssembleProvider()
}
또한 코멘트 원단 적용
//apply plugin: 'io.fabric'
패브릭 플러그인을 최신 프로젝트 수준의 Gradle 파일(앱 수준이 아님)로 업데이트합니다.저의 경우, 이 선이 문제를 해결했습니다.
classpath 'io.fabric.tools:gradle:1.25.4'
로.
classpath 'io.fabric.tools:gradle:1.29.0'
내 경우에는
build.gradle(Project)
이었다
ext.kotlin_version = '1.2.71'
로 업데이트된.
ext.kotlin_version = '1.3.0'
문제는 일단 사라진 것 같습니다.
저 같은 경우에는 제가 논평을 해야 했습니다.com.google.firebase.firebase-crash
플러그인:
apply plugin: 'com.android.application'
// apply plugin: 'com.google.firebase.firebase-crash' <== this plugin causes the error
Android Studio 3.3.0 이후의 버그입니다.
플러그인이 더 이상 지원되지 않는 API를 사용하고 있음을 감지하면 이제 해당 API가 사용되고 있는 위치를 확인하는 데 도움이 되는 보다 자세한 정보를 제공할 수 있습니다.추가 정보를 보려면 프로젝트의 gradle.properties 파일에 다음을 포함해야 합니다.
android.debug.obsoleteApi=true
이 행을 제거하면application gradle
:
apply plugin: 'io.fabric'
오류가 더 이상 나타나지 않습니다.
프로젝트를 AndroidX로 마이그레이션합니다.
종속성이 AndroidX로 업그레이드되었습니다.따라서 AndroidX 콘텐츠를 사용하려면 프로젝트를 AndroidX로 마이그레이션하십시오.
Android Studio 3.2 이상에서는 메뉴바에서 Refactor > Migrate to AndroidX를 선택하여 기존 프로젝트를 AndroidX로 빠르게 마이그레이션할 수 있습니다.
종속성을 다운그레이드하면 이번에는 문제가 해결될 수 있지만 권장되지는 않습니다.
이것은 나의 문제를 해결했습니다.제가 해야 할 일은 다음과 같이 build.gradle(Project) 수준 파일의 buildscript에서 구글 서비스 플러그인을 다운그레이드하는 것이었습니다.
buildscript{
dependencies {
// From =>
classpath 'com.google.gms:google-services:4.3.0'
// To =>
classpath 'com.google.gms:google-services:4.2.0'
// Add dependency
classpath 'io.fabric.tools:gradle:1.28.1'
}
}
여기에 임시 해결 방법이 있습니다. 객실을 사용하는 경우 1.1.0 이상으로 업그레이드하십시오.
implementation "android.arch.persistence.room:runtime:1.1.0"
그것은 나를 위해 이 경고를 제거합니다.
keep you Project(앱 아님) Build.gradle 종속성 클래스 경로 버전 코드가 새 것입니다.
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0-beta01'
classpath 'com.novoda:bintray-release:0.8.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
이것은 인기 있는 질문입니다.이러한 방법을 사용하지 않으면 라이브러리를 업데이트하는 것이 해결책입니다.당신의 코틀린 버전과 원단, 프로토토프 등 당신의 모든 종속성을 업데이트해 주세요.모든 내용을 업데이트한 것이 확실하면 라이브러리 작성자에게 문의하십시오.
protof-gradle-plugin을 0.8.10 버전으로 업그레이드하여 문제를 해결했습니다.기존 프로토타입을 다음으로 대체
classpath 'gradle.plugin.com.google.protobuf:protobuf-gradle-plugin:0.8.10'
그것은 대부분 쓸모없는 도서관 때문입니다.새 업데이트를 수동으로 확인하려면 다음으로 이동해야 합니다.
분석 > "이름별 검사 실행"
그만하면 충분할 거야. .다른 옵션은 다음을 사용하여 Gradle 종속성 업데이트를 실행하는 것입니다.
./gradlew dependencyUpdates
다음과 같은 보고서가 생성됩니다.
:dependencyUpdates
------------------------------------------------------------
: Project Dependency Updates (report to plain text file)
------------------------------------------------------------
The following dependencies are using the latest milestone version:
- com.github.ben-manes:gradle-versions-plugin:0.15.0
The following dependencies have later milestone versions:
- com.google.auto.value:auto-value [1.4 -> 1.4.1]
- com.google.errorprone:error_prone_core [2.0.19 -> 2.0.21]
- com.google.guava:guava [21.0 -> 23.0-rc1]
- net.ltgt.gradle:gradle-apt-plugin [0.9 -> 0.10]
- net.ltgt.gradle:gradle-errorprone-plugin [0.0.10 -> 0.0.11]
...
프로젝트 수준에서 구글 서비스 업그레이드build.gradle
내 문제를 해결했습니다.
업그레이드 후:
dependencies {
...
classpath 'com.google.gms:google-services:4.3.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
저도 같은 문제가 있었는데 build.gradle 파일에 kotlin gradle 플러그인 버전을 정의하여 해결했습니다.
이것을 변경합니다.
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
로.
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.50{or latest version}"
저의 경우에는 이것을 따랐습니다.요약, Gradle App 수준: 변경:
variant.outputs.all { output ->
variant.assemble.doLast {
....
}
}
로.
variant.outputs.all { output ->
variant.getAssembleProvider().configure() {
it.doLast {
....
}
}
다음과 같이 새 공급자 API로 변경합니다.
variant.getJavaCompileProvider().configure() { javaCompile ->
// You have javaCompile object, you can play with it here.
}
감사해요.
언급URL : https://stackoverflow.com/questions/52470044/warning-api-variant-getjavacompile-is-obsolete-and-has-been-replaced-with
'sourcetip' 카테고리의 다른 글
PSObject, Hashtable 및 PSCustomObject 간의 차이 (0) | 2023.08.21 |
---|---|
스프링 데이터 jdbc 및 시퀀스 (0) | 2023.08.21 |
mysqdump를 사용하여 CREATE TABLE 명령만 내보내려면 어떻게 해야 합니까? (0) | 2023.08.21 |
mkdir vs New-Item, 같은 cmdlet입니까? (0) | 2023.08.21 |
클래스 Y의 개체 X가 Swift에서 methodSignatureForSelector를 구현하지 않습니다. (0) | 2023.08.21 |