Utilisation du nouveau studio Android avec le nouveau plug-in Gradle 3.0.0.
Lors de la construction, un avertissement s'est produit:
registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
Utilisation du nouveau studio Android avec le nouveau plug-in Gradle 3.0.0.
Lors de la construction, un avertissement s'est produit:
registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
Réponses:
D'après ce que je peux dire, les plugins ajoutés en tant que dépendances de chemin de classe poseront des problèmes. Ie Firebase a eu un problème avec lui. Spoon et Flutter aussi. Faire cette recherche Google révèle beaucoup de dépôts GitHub avec un problème soulevé par la même chose, et tout ce qu'ils ont en commun est le fait qu'il s'agit d'un plugin Gradle. Le tissu semble également être une cause, comme mentionné par Mate *
D'après ce que je peux dire, le problème vient d'un / plusieurs plug-ins Gradle. Il peut également être déclenché par votre code Gradle, mais cela ne s'applique probablement pas si votre projet est une application et non un plugin Gradle.
Et comme l'a mentionné Alex Cohn dans un commentaire, la dépréciation est un avertissement. Dans ce cas, cela signifie que c'est une fonctionnalité qui sera éventuellement supprimée. Donc pour l'instant, en supposant qu'il s'agisse d'un plugin (et non créé par vous), vous pouvez l'ignorer. Au moment où il est supprimé, la plupart / tous les principaux plugins devraient être mis à jour pour le corriger.
Et, encore une fois, c'est un avertissement; pas une erreur. Vous pouvez toujours l'exécuter et l'ignorer si vous ne pouvez rien faire pour résoudre le problème. Désactiver par exemple le plugin Fabric * est excessif, car il fonctionne toujours.
Je n'utilise pas Fabric moi-même et Fabric n'est pas open-source, donc je ne sais pas si les développeurs l'ont corrigé ou non
TL; DR: les plugins Gradle en sont la cause. C'est un avertissement (pas une erreur), donc supprimer les plugins à l'origine du problème est excessif. Si vous ne pouvez pas le réparer, laissez-le seul tant qu'il est seulement obsolète pour le moment (non supprimé)
Si vous utilisez Firebase, il existe une solution spécifique qui est également mentionnée dans le guide de migration (lié plus loin dans cet article); exclure le module goyave
classpath ('com.google.firebase:firebase-plugins:1.1.0') {
exclude group: 'com.google.guava', module: 'guava-jdk5'
}
Le problème lui-même est assez difficile à détecter. D'après ce que je peux dire, il n'y a pas de problème unique qui le cause dans tous les plugins que j'ai vérifiés (et liés dans cette réponse). Si vous avez codé quelque chose qui cause le problème (et qu'il est possible de le résoudre; l'ajout d'un plugin gradle tiers ne le cause pas), vous pouvez essayer de résoudre ce problème.
D'après ce que je peux dire de la cause réelle, cela est résolu en mettant à jour le fichier Gradle (bien que dans la bibliothèque Spoon, il ait été corrigé en modifiant une ligne liée à TestVariant
) en suivant les rubriques du guide de migration du plugin Gradle 3.0.0.
Le tout est couvert par la documentation du développeur , mais voici quelques-uns des éléments qui, à mon avis, sont pertinents en fonction des demandes de tirage effectuées sur les projets où cela a posé problème:
En plus de la mise à jour de la version et du plugin Gradle, vous devez également ajouter le google()
dépôt sous repositories
.
compile
est maintenant implementation
ou api
, mais implementation
est celui recommandé.
provided
est compileOnly
et apk
estruntimeOnly
androidTestCompile
est devenu androidTestImplementation
, et testCompile
->testImplementation
Si vous utilisez des saveurs, vous devez utiliser des dimensions de saveurs (couvertes par la documentation).
Pour les types de build, vous devez inclure des solutions de secours au cas où il y aurait une bibliothèque qui n'aurait pas ce type de build. Celles-ci sont définies dans le profile
bloc sous le android
bloc.
Si ce n'est déjà fait, le plugin gradle doit être défini en premier. Si vous n'avez pas d'autres dépendances de chemin de classe, ce n'est pas un problème. Mais si vous le faites, assurez-vous que le plugin gradle est défini en premier.
Si vous utilisez testVariants
, assurez-vous de ne pas appeler testedVariant
dans la classe. Cela semble être la cause de la bibliothèque Spoon.
Ces choses sont, d'après ce que j'ai pu dire, certaines des modifications qui ont été apportées pour résoudre le problème.
J'utilise le plugin Gradle des services Play com.google.gms:google-services
avec la version 4.2.0
.
Dans le code source, nous pouvons voir que:
Donc pour moi, c'était la raison de mes avertissements et ne peut pas être supprimé tant que le plugin n'est pas corrigé. Le problème est ici
Comme mentionné par @Zoe, cela peut également provenir d'autres plugins Gradle.
Meilleur
La mise à jour vers la dernière version du plugin Fabric Gradle résout ce problème.
Depuis le journal des modifications:
Dans mon cas, cela était dû à une version incompatible des bibliothèques de support Android. J'ai mis à jour tous les modules avec la dernière version (28.0.0) et cela l'a résolu.
Après avoir correctement installé Fabric, ce problème a été résolu pour moi
import com.crashlytics.android.Crashlytics;
import io.fabric.sdk.android.Fabric;
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Fabric.with(this, new Crashlytics());
}
}
build.gradle
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
dependencies {
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9'
}
repositories {
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
}
J'ai eu ce message d'erreur et beaucoup d'autres comme
x-version is deprecated and use y-version instead and it'll be removed in 2019
et tout mon projet a commencé à donner soudainement les mêmes messages d'erreur.
Le studio Android donnait des avertissements concernant mon programme antivirus. J'ai essayé de le configurer mais je n'ai pas fonctionné.
Enfin, j'ai désinstallé l'antivirus QuickHeal de mon système et tout va bien maintenant
Toutes les autres réponses concernent des problèmes avec des composants tiers .
Voici comment mettre à jour votre projet qui utilise registerResGeneratingTask
directement:
Avant:
variant.registerResGeneratingTask generateIcon, ICON_DIR
Après:
variant.mergeResourcesProvider.get().dependsOn generateIcon
variant.registerGeneratedResFolders files(ICON_DIR)
Construction au niveau du projet.
Utilisez la version suivante de la dépendance des services Google.
dependencies {
classpath 'com.android.tools.build:gradle:3.4.2'
classpath 'com.google.gms:google-services:4.3.0'
classpath ('com.google.firebase:firebase-plugins:1.1.0') {
exclude group: 'com.google.guava', module: 'guava-jdk5'
}
}
Problème résolu pour moi.
Pour moi, cet avertissement a disparu lorsque j'ai désactivé le plugin Fabric Gradle, veuillez vérifier si vous utilisez Fabric ou un autre plugin dont je suis responsable de cet avertissement.
com.google.gms:google-services
4.0.1
& les 4.0.2
deux provoquent cet avertissement.