Beim Synchronisieren von Gradle bekomme ich plötzlich diesen Fehler:
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
Affected Modules: app
Ich habe diesen build.gradle
für das App-Modul:
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'
[...]
}
Ich kann die App richtig kompilieren, aber es ist etwas nervig, und aus meiner Sicht wird Ende 2019 irgendetwas aufhören zu arbeiten.
Dies ist nur eine Warnung und wird wahrscheinlich vor 2019 mit Plugin-Updates behoben. Machen Sie sich also keine Sorgen. Ich würde Ihnen empfehlen, kompatible Versionen Ihrer Plugins und Gradle zu verwenden.
Sie können Ihre Plugin-Version und Gradle-Version hier überprüfen, um ein besseres Erlebnis und eine bessere Leistung zu erhalten.
https://developer.Android.com/studio/releases/gradle-plugin
Verwenden Sie die stabilen Versionen, um einen reibungslosen und warn-/fehlerfreien Code zu erhalten.
In meinem Fall wurde es von gms services 4.3.0 verursacht. Also musste ich es ändern zu:
com.google.gms:google-services:4.2.0
Ich habe dies durch Laufen gefunden:
gradlew sync -Pandroid.debug.obsoleteApi=true
im Terminal. Gehen Sie zu Ansicht -> Werkzeugfenster -> Terminal in Android Studio.
Ich stand auch vor dem gleichen Problem. Und nachdem ich eine Weile gesucht hatte, stellte ich fest, dass die Warnung aufgrund der Verwendung der neuesten Version des google-services
-Plugins (Version 4.3.0) auftrat. Ich habe dieses Plugin übrigens für Firebase-Funktionalitäten in meiner Anwendung verwendet. Ich habe lediglich mein google-services
-Plugin in buildscript in der Datei build.gradle (Project) wie folgt heruntergestuft:
buildscript{
dependencies {
// From =>
classpath 'com.google.gms:google-services:4.3.0'
// To =>
classpath 'com.google.gms:google-services:4.2.0'
}
}
Ich habe dieses Problem nach dem Update auf 3.3.0
Wenn Sie nicht tun, was der Fehler in der gradle-Datei angibt, ist dies ein Plugin, das immer noch nicht auf die neuere API aktualisiert wurde. Um herauszufinden, welches Plugin es ist, gehen Sie wie folgt vor (wie in "Bessere Debug-Informationen bei Verwendung einer veralteten API" der Ankündigung 3.3.0 ) erläutert:
Hoffe, es hilft anderen
Dieses Problem wurde mit dem Update von Fabric Gradle Version 1.28.0 behoben:
Update-Version: 19. März 2019
Bitte sehen Sie diesen Link: https://docs.fabric.io/Android/changelog.html#march-15-2019
Bitte aktualisieren Sie Ihre Klassenpfadabhängigkeit auf Projektebene Gradle:
buildscript {
// ... repositories, etc. ...
dependencies {
// ...other dependencies ...
classpath 'io.fabric.tools:gradle:1.28.0'
}
}
Ändern Sie Ihre Google Services-Version in Ihrem build.gradle
:
dependencies {
classpath 'com.google.gms:google-services:4.2.0'
}
Dies ist eine Warnung, die Build-Tools aus zwei Gründen ausspucken.
1. Eines der Plugins basiert auf Task anstelle von TaskProvider. Es gibt nicht viel, was wir tun können.
2. Sie haben die Verwendung von task konfiguriert, wobei TaskProvider unterstützt wird.
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
Suchen Sie nach Ausschnitten wie unten und aktualisieren Sie sie.
Android {
<library|application>Variants.all { variant ->
/* Disable Generating Build config */
// variant.generateBuildConfig.enabled = true // <- Deprecated
variant.generateBuildConfigProvider.configure {
it.enabled = true // Replacement
}
}
}
Genauso finden Sie Verwendungen von 'variant.getJavaCompile()'
oder 'variant.javaCompile'
, 'variant.getMergeResources()'
oder 'variant.mergeResources'
. Ersetzen Sie wie oben.
Weitere Informationen unter Taskkonfiguration vermeiden
Gehen Sie vom Klassenpfad 'com.Android.tools.build:gradle:3.3.0-alpha13' zum Klassenpfad 'com.Android.tools.build:gradle :3.2.0' zurück.
das hat für mich funktioniert
Migriere dein Projekt nach androidX.
abhängigkeiten werden auf AndroidX aktualisiert. Also, wenn Sie AndroidX-Inhalte verwenden möchten Migrieren Sie Ihr Projekt zu AndroidX.
Mit Android Studio 3.2 und höher können Sie ein vorhandenes Projekt schnell auf AndroidX migrieren, indem Sie in der Menüleiste Refactor> Auf AndroidX migrieren auswählen.
Das Herabstufen von Abhängigkeiten kann dieses Mal Ihr Problem beheben - wird jedoch nicht empfohlen
In meinem Fall musste ich com.google.firebase.firebase-crash
plugin auskommentieren:
apply plugin: 'com.Android.application'
// apply plugin: 'com.google.firebase.firebase-crash' <== this plugin causes the error
Es ist ein Fehler seit Android Studio 3.3.0
Aktualisierung von Gradle nach Gradle: 3.3.0
Die Standardaufgabe zum Zusammenbauen gilt nur für normale Varianten. Fügen Sie auch Testvarianten hinzu.
Android.testVariants.all { variant ->
tasks.getByName('assemble').dependsOn variant.getAssembleProvider()
}
auch Kommentar Stoff anwenden
//apply plugin: 'io.fabric'
Aktualisieren Die Kotlin (Plugin und stdLib) Version bis 1.3.1 löste diese Warnung in meinem Fall. Aktualisieren Sie die Kotlin-Version im gesamten Projekt, indem Sie die vorhandene Kotlin-Version durch Folgendes ersetzen:
ext.kotlin_version = '1.3.1'
wenn ich dieses roh von der Anwendung gradle entferne:
apply plugin: 'io.fabric'
fehler wird nicht angezeigt Referenzlink github
Dies hat mein Problem behoben. Ich musste lediglich mein Google-Services-Plugin in buildscript in der Datei build.gradle (Project) wie folgt downgraden
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'
}
}
Wenn das Plugin feststellt, dass Sie eine API verwenden, die nicht mehr unterstützt wird, kann es jetzt detailliertere Informationen bereitstellen, mit denen Sie feststellen können, wo diese API verwendet wird. Um die zusätzlichen Informationen anzuzeigen, müssen Sie Folgendes in die Datei gradle.properties Ihres Projekts aufnehmen:
Android.debug.obsoleteApi=true
Aktualisieren Sie das Fabric-Plug-in auf die neueste Gradle-Datei auf Projektebene (nicht auf App-Ebene). In meinem Fall hat diese Zeile das Problem gelöst
classpath 'io.fabric.tools:gradle:1.25.4'
zu
classpath 'io.fabric.tools:gradle:1.28.0'
1) Fügen Sie Android.debug.obsoleteApi=true
zu Ihrem gradle.properties
hinzu. Es wird Ihnen angezeigt, welche Module von Ihrem Warnprotokoll betroffen sind.
2) Aktualisieren Sie diese veralteten Funktionen.
variant.javaCompile
bis variant.javaCompileProvider
variant.javaCompile.destinationDir
bis variant.javaCompileProvider.get().destinationDir
Hier eine temporäre Problemumgehung: Wenn Sie Raum verwenden, aktualisieren Sie einfach auf 1.1.0 oder höher
implementation "Android.Arch.persistence.room:runtime:1.1.0"
es entfernt diese Warnung für mich.
Dies ist eine beliebte Frage. Wenn Sie diese Methoden nicht verwenden, aktualisiert die Lösung die Bibliotheken. Bitte aktualisieren Sie Ihre kotlin version und alle Ihre Abhängigkeiten wie fabric, protobuf usw. Wenn Sie sicher sind, dass Sie alles aktualisiert haben, fragen Sie die Autor der Bibliothek.
behalten Sie Project (nicht App) Build.gradle Abhängigkeiten Klassenpfad Versionscode ist neu
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
}
In meinem Fall
build.gradle(Project)
war
ext.kotlin_version = '1.2.71'
aktualisiert zu
ext.kotlin_version = '1.3.0'
sieht Problem ist vorerst gegangen
Das Downgrade der Version von Gradle hat für mich funktioniert:
classpath 'com.Android.tools.build:gradle:3.2.0'