Soudainement, lors de la synchronisation de Gradle, j'obtiens cette erreur:
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
J'ai ce build.gradle
pour le module d'application:
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'
[...]
}
Je peux compiler correctement l'application, mais c'est un peu gênant et, à mon avis, quelque chose ne fonctionnera plus fin 2019. Avez-vous une idée de ce que c'est et de la façon de le résoudre?
Ceci est juste un avertissement et il sera probablement corrigé avant 2019 avec les mises à jour de plugins, alors ne vous inquiétez pas. Je vous recommanderais d'utiliser des versions compatibles de vos plugins et gradle.
Vous pouvez vérifier votre version de plugin et votre version ici pour une meilleure expérience et de meilleures performances.
https://developer.Android.com/studio/releases/gradle-plugin
Essayez d’utiliser les versions stables pour obtenir un code lisse, sans avertissement ni erreur.
Dans mon cas, cela provient de gms services 4.3.0. J'ai donc dû le changer pour:
com.google.gms:google-services:4.2.0
J'ai trouvé ceci en exécutant:
gradlew sync -Pandroid.debug.obsoleteApi=true
dans le terminal. Allez voir -> fenêtres d’outils -> Terminal dans Android Studio.
J'ai également fait face au même problème. Et après avoir cherché pendant un moment, je me suis rendu compte que l'avertissement était survenu à cause de l'utilisation de la dernière version du plugin google-services
(version 4.3.0). J'utilisais ce plugin pour les fonctionnalités de Firebase dans mon application. Je n'ai fait que rétrograder mon plug-in google-services
dans le script de construction du fichier de niveau build.gradle (Projet) comme suit:
buildscript{
dependencies {
// From =>
classpath 'com.google.gms:google-services:4.3.0'
// To =>
classpath 'com.google.gms:google-services:4.2.0'
}
}
Je fais face à ce problème après la mise à jour vers la version 3.3.0
Si vous ne faites pas quels états d'erreur dans le fichier gradle, c'est un plugin qui n'a toujours pas été mis à jour vers la nouvelle API qui en est la cause. Pour déterminer le plugin utilisé, procédez comme suit (comme expliqué dans "Meilleures informations de débogage lors de l'utilisation d'une API obsolète" de 3.3.0 annonce ):
J'espère que ça aide les autres
Ce problème est résolu maintenant avec la mise à jour de Fabric Gradle version 1.28.0:
Mise à jour: 19 mars 2019
S'il vous plaît voir ce lien: https://docs.fabric.io/Android/changelog.html#march-15-2019
Veuillez mettre à jour la dépendance de votre chemin de classe au niveau du projet.
buildscript {
// ... repositories, etc. ...
dependencies {
// ...other dependencies ...
classpath 'io.fabric.tools:gradle:1.28.0'
}
}
Changez la version de vos services Google à partir de votre build.gradle
:
dependencies {
classpath 'com.google.gms:google-services:4.2.0'
}
Ceci est un avertissement lancé par les outils de construction pour deux raisons.
1. Un des plugins s'appuie sur Task au lieu de TaskProvider, il n'y a rien que nous puissions faire.
2. Vous avez configuré l'utilisation de la tâche, où elle prend en charge TaskProvider.
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
Recherchez les extraits comme ci-dessous et mettez-les à jour.
Android {
<library|application>Variants.all { variant ->
/* Disable Generating Build config */
// variant.generateBuildConfig.enabled = true // <- Deprecated
variant.generateBuildConfigProvider.configure {
it.enabled = true // Replacement
}
}
}
De même, trouvez les utilisations de 'variant.getJavaCompile()'
ou 'variant.javaCompile'
, 'variant.getMergeResources()'
ou 'variant.mergeResources'
. Remplacez comme ci-dessus.
Plus d'informations sur Eviter la configuration de tâches
Retournez du chemin de classe 'com.Android.tools.build:gradle:3.3.0-alpha13' au chemin de classe 'com.Android.tools.build:gradle:3.2.0'
cela a fonctionné pour moi
Migrez votre projet vers androidX.
les dépendances sont mises à niveau vers androidX. donc si vous voulez utiliser le contenu androidX migrez votre projet vers androidX.
Avec Android Studio 3.2 et versions ultérieures, vous pouvez migrer rapidement un projet existant pour utiliser AndroidX en sélectionnant Refactor> Migrer vers AndroidX dans la barre de menus.
La réduction des dépendances peut résoudre votre problème cette fois-ci - mais n'est pas recommandée
Dans mon cas, je devais commenter le plugin com.google.firebase.firebase-crash
:
apply plugin: 'com.Android.application'
// apply plugin: 'com.google.firebase.firebase-crash' <== this plugin causes the error
C'est un bug depuis Android Studio 3.3.0
Mise à jour du grade à classement: 3.3.0
La tâche d'assemblage par défaut ne s'applique qu'aux variantes normales. Ajoutez également des variantes de test.
Android.testVariants.all { variant ->
tasks.getByName('assemble').dependsOn variant.getAssembleProvider()
}
aussi comment appliquer tissu
//apply plugin: 'io.fabric'
Mise à niveau le Kotlin ( Plugin et stdLib ) version en 1.3.1 a résolu cet avertissement dans mon cas. Mettez à jour la version de Kotlin dans l'ensemble du projet en remplaçant la version existante de Kotlin par:
ext.kotlin_version = '1.3.1'
si je supprime cette matière première du grade d’application:
apply plugin: 'io.fabric'
erreur n'apparaîtra pas Lien de référence github
Cela a résolu mon problème. Tout ce que je devais faire était de rétrograder mon plug-in google-services dans un buildscript dans le fichier de niveau build.gradle (Projet) comme suit
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'
}
}
Lorsque le plug-in détecte que vous utilisez une API qui n'est plus prise en charge, il peut désormais fournir des informations plus détaillées pour vous aider à déterminer où cette API est utilisée. Pour afficher les informations supplémentaires, vous devez inclure les éléments suivants dans le fichier gradle.properties de votre projet:
Android.debug.obsoleteApi=true
Mettez à jour le plug-in de la matrice vers le dernier fichier de niveau de projet (pas au niveau de l'application). Dans mon cas, cette ligne a résolu le problème
classpath 'io.fabric.tools:gradle:1.25.4'
à
classpath 'io.fabric.tools:gradle:1.28.0'
1) Ajoutez Android.debug.obsoleteApi=true
à votre gradle.properties
. Il vous montrera quels modules sont affectés par votre journal d'avertissement.
2) Mettez à jour ces fonctions obsolètes.
variant.javaCompile
à variant.javaCompileProvider
variant.javaCompile.destinationDir
to variant.javaCompileProvider.get().destinationDir
Voici une solution temporaire, si vous utilisez room, passez à la version 1.1.0 ou supérieure.
implementation "Android.Arch.persistence.room:runtime:1.1.0"
cela supprime cet avertissement pour moi.
C'est une question populaire. Si vous n'utilisez pas ces méthodes, la solution met à jour les bibliothèques. Veuillez mettre à jour votre version kotlin, et toutes vos dépendances telles que fabric, protobuf etc. Si vous êtes sûr d'avoir tout mis à jour, essayez de demander au auteur de la bibliothèque.
gardez vous Project (pas app) Build.gradle dependncies le code de version de chemin de classe est nouveau
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
}
Dans mon cas
build.gradle(Project)
était
ext.kotlin_version = '1.2.71'
mis à jour pour
ext.kotlin_version = '1.3.0'
semble problème est parti pour l'instant
Rétrograder la version de Gradle a fonctionné pour moi:
classpath 'com.Android.tools.build:gradle:3.2.0'