web-dev-qa-db-fra.com

RegisterResGeneratingTask est obsolète, utilisez registerGeneratedFolders (FileCollection)

._____. Lors de la construction de certains avertissements:.

registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
107
Valentin Baryshev

D'après ce que je peux dire, les plugins ajoutés en tant que dépendances de classpath poseront des problèmes. C'est à dire. Firebase eu un problème avec elle. Cuillère et Flutter ainsi. Faire cette recherche Google révèle beaucoup de dépôts de 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 aussi être une cause, comme mentionné par Mate *

D'après ce que je peux dire, le problème provient d'un/de plusieurs plugins Gradle. Il peut également être déclenché par votre code Gradle, mais cela n’est probablement pas applicable si votre projet est une application et non un plugin Gradle.

Et comme mentionné par 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 le moment, en supposant que ce soit un plugin (et non fait par vous), vous pouvez l'ignorer. Au moment où il est supprimé, la plupart/tous les plugins majeurs devraient être mis à jour pour y remédier.

Et, encore une fois, c'est un avertissement; pas une erreur. Vous pouvez toujours l'exécuter et l'ignorer s'il n'y a rien que vous puissiez faire pour résoudre le problème. Désactiver par exemple le plug-in Fabric * est excessif, car il fonctionne toujours.

Je n'utilise pas Fabric moi-même, et Fabric n'est pas open-source. Je ne sais donc 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), il est donc excessif de supprimer les plug-ins qui sont à l'origine du problème. Si vous ne pouvez pas le réparer, laissez-le tranquille 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 tard dans ce post); exclure le module de 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 un seul problème 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éparer; l'ajout d'un plugin Gradle tiers ne le provoque pas), vous pouvez essayer de résoudre certains problèmes.

D'après ce que je peux dire de la cause réelle, cela a été résolu en mettant à jour le fichier Gradle (bien que dans la bibliothèque Spoon, le problème ait été corrigé en modifiant une ligne associée à TestVariant) en suivant les rubriques du guide de migration du plugin Gradle 3.0.0.

L'ensemble de la question est couvert par la documentation du développeur , mais voici quelques éléments qui, à mon avis, sont pertinents en fonction des demandes d'extraction effectuées sur des projets pour lesquels cela pose problème:

Outre la mise à jour de la version et du plug-in de Gradle, vous devez également ajouter le référentiel google() sous repositories.

compile est maintenant implementation ou api, mais implementation est celui recommandé.

provided est compileOnly et apk est runtimeOnly

androidTestCompile est devenu androidTestImplementation, et testCompile -> testImplementation

Si vous utilisez des arômes, vous devez utiliser des dimensions d'arôme (couvertes par la documentation).

Pour les types de construction, vous devez inclure des substitutions au cas où une bibliothèque ne possède pas ce type de construction. Ceux-ci sont définis dans le bloc profile sous le bloc Android.

Si ce n'est déjà fait, le plugin Gradle doit d'abord être défini. Si vous n'avez pas d'autres dépendances de classpath, 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.

D'après ce que j'ai pu dire, ces changements ont été apportés pour résoudre le problème.

20
Zoe

La mise à jour vers la dernière version du plug-in Fabric Gradle résout ce problème.

Du changelog:

  • Correction de l'avertissement de dépréciation de "registerResGeneratingTask".

https://docs.fabric.io/Android/changelog.html#march-15-2018

8
luis_cortes

J'utilise le plugin Gradle Play Services com.google.gms:google-services avec la version 4.2.0.

Dans le code source, nous pouvons voir que:  enter image description here

Donc, pour moi, c’est la raison de mes avertissements et ne peut être supprimé jusqu’à ce que le plugin soit réparé. Le problème est ici

Comme mentionné par @Zoe, cela peut provenir d'autres plugins Gradle.

Meilleur

6
user1998494

Le problème est résolu avec la version 4.3.0 du plug-in de services Google (résolu avec this commit ).

buildscript {
    dependencies {
        // Change version to 4.3.0
        classpath 'com.google.gms:google-services:4.3.0'
    }
}

Trouvé ici

6
Simpler

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 a résolu le problème.

2
Lee Hounshell

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' }
}
1
Nithin Raja

Pour moi, cet avertissement a disparu lorsque j’ai éteint le plug-in Fabric Gradle. Vérifiez si vous utilisez Fabric ou un autre plug-in qui est responsable de cet avertissement.

0
Mate