RegisterResGeneratingTask è obsoleto, utilizza registerGeneratedFolders (FileCollection)


158

Utilizzo del nuovo Android Studio con il nuovo plug-in 3.0.0 Gradle.
Quando si sono verificati alcuni avvisi:

registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)

1
puoi mostrare i tuoi compiti di livello? hai divisioni apk?
Itzhar,

per favore, mostra il tuo Gradle
Jéwôm "

Hai visto questo articolo che descrive il problema esatto (un problema noto) e una soluzione alternativa? (Primo colpo su Google.)
ashleedawg

@ashleedawg cosa devo fare? aggiornare Android Studio? o alcune biblioteche?
Valentin Baryshev,

4
@ashleedawg la soluzione alternativa che menzioni è, a meno che non lo fraintenda, rimanere con la versione precedente del plugin gradle. Questo non è un modo per gestire la deprecazione a lungo termine. Nel breve periodo, l'avviso può essere <s> ignorato </s>, ma non è necessaria alcuna azione immediata.
Alex Cohn,

Risposte:


46

Da quello che posso dire, i plugin aggiunti come dipendenze del percorso di classe daranno problemi. ieVale a Firebase ha avuto un problema con esso. Anche Spoon e Flutter . Fare questa ricerca su Google rivela molti repository GitHub con un problema sollevato sulla stessa cosa, e tutto ciò che hanno in comune è il fatto che si tratta di un plug-in Gradle. Anche il tessuto sembra essere una causa, come menzionato da Mate *

Da quello che posso dire, il problema deriva da un / più plug-in Gradle. Può anche essere attivato dal tuo codice Gradle, ma molto probabilmente non è applicabile se il tuo progetto è un'app e non un plug-in Gradle.

E come menzionato da Alex Cohn in un commento, la deprecazione è un avvertimento. In questo caso, significa che è una funzionalità che verrà rimossa alla fine. Quindi per ora, supponendo che sia un plugin (e non creato da te), puoi ignorarlo. Quando viene rimosso, la maggior parte / tutti i plug-in principali dovrebbero essere aggiornati per risolverlo.

E, ancora una volta, è un avvertimento; non un errore. Puoi ancora eseguirlo e ignorarlo se non c'è nulla che puoi fare sul problema. La disabilitazione, ad esempio, del plug-in Fabric * è eccessiva, poiché funziona ancora.

Non uso Fabric da solo e Fabric non è open-source, quindi non so se gli sviluppatori lo hanno riparato o meno

TL; DR: i plug-in Gradle sono la causa. È un avvertimento (non un errore), quindi rimuovere i plugin che causano il problema è eccessivo. Se non riesci a risolverlo, lascialo solo fintanto che è deprecato solo al momento (non rimosso)


Se usi Firebase, esiste una soluzione specifica menzionata anche nella guida alla migrazione (collegata più avanti in questo post); esclude il modulo guava

classpath ('com.google.firebase:firebase-plugins:1.1.0') {
    exclude group: 'com.google.guava', module: 'guava-jdk5'
}

Il problema in sé è abbastanza difficile da rilevare. Da quello che posso dire, non c'è un singolo problema che lo causa in tutti i plugin che ho controllato (e collegato in questa risposta). Se hai codificato qualcosa che causa il problema (ed è possibile risolverlo; l'aggiunta di un plug-in Gradle di terze parti non lo sta causando), ci sono alcune cose che puoi provare a risolvere.

Da quello che posso dire della causa reale, è stato risolto aggiornando il file Gradle (anche se nella libreria Spoon, è stato risolto modificando una riga relativa a TestVariant ) seguendo gli argomenti nella guida alla migrazione del plugin 3.0.0 Gradle.

L'intera cosa è coperta dai documenti per gli sviluppatori , ma ecco alcune delle cose che ritengo rilevanti in base alle richieste pull fatte su progetti in cui è stato un problema:

Oltre ad aggiornare la versione e il plug-in Gradle, devi anche aggiungere il google()repository inrepositories .

compileè ora implementationo api, maimplementation è quello consigliato.

providedè compileOnlyed apkèruntimeOnly

androidTestCompileè diventato androidTestImplementation, etestCompile ->testImplementation

Se usi gli aromi, devi usare le dimensioni degli aromi (coperte dai documenti).

Per i tipi di build, è necessario includere i fallback nel caso in cui sia presente una libreria che non dispone di quel tipo di build. Questi sono definiti nel profileblocco sotto il androidblocco.

Se non lo hai già fatto, devi prima definire il plugin gradle. Se non hai altre dipendenze per il percorso di classe, non è un problema. Ma se lo fai, assicurati di definire prima il plugin gradle.

Se lo usi testVariants, assicurati di non chiamare testedVariantin classe. Sembra essere la causa della libreria Spoon.

Queste cose sono, da quanto ho potuto dire, alcune delle modifiche che sono state apportate per risolvere il problema.


Ma non sono in grado di eseguire il debug della riga di codice che mostra l'errore
Abhinav Gupta

GUASTO: Build fallito con un'eccezione. * Cosa è andato storto: esecuzione non riuscita per l'attività ': app: compileDebugJavaWithJavac'. > Compilazione non riuscita; vedere l'output dell'errore del compilatore per i dettagli. * Prova: esegui con l'opzione --stacktrace per ottenere la traccia dello stack. Esegui con l'opzione --info o --debug per ottenere più output del registro. Esegui con --scan per ottenere informazioni complete. * Ottieni ulteriore assistenza su help.gradle.org BUILD FAILED in 4s 29 task eseguibili: 2 eseguiti, 27 aggiornati
Abhinav Gupta

@AbhinavGupta non è lo stacktrace. Questo è solo un messaggio che ti dice che qualcosa è andato storto
Zoe,

ma non sono in grado di risolverlo e, a causa di ciò, non sono in grado di installare apk nel mio dispositivo
Abhinav Gupta,

@AbhinavGupta, quindi fai una nuova domanda su Stack Overflow
Zoe,

17

Sto usando il plug-in Gradle dei servizi di riproduzione com.google.gms:google-servicescon versione 4.2.0.

Nel codice sorgente possiamo vedere che: inserisci qui la descrizione dell'immagine

Quindi, per me, questo è stato il motivo dei miei avvertimenti e non può essere rimosso fino a quando il plugin non viene riparato. Il problema è qui

Come accennato da @Zoe, questo può provenire anche da altri plugin Gradle.

Migliore


15

Il problema è stato risolto con il plug-in Google Services versione 4.3.0 (risolto con questo commit )

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

Trovato qui


10

L'aggiornamento all'ultima versione del plug-in Fabric Gradle risolve questo problema.

Dal log delle modifiche:

  • Risolto avviso di deprecazione "registerResGeneratingTask".

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


Ma cos'è esattamente? Vale la pena aggiornarlo? Causa problemi (prima e dopo l'aggiornamento)? Usiamo v2.6.8 e ora hanno v2.9.3, ma non vedo come guardarlo nel log delle modifiche. Lì hanno versioni diverse (ad esempio "1.4.2 24 maggio 2018")
sviluppatore Android il

@androiddeveloper Stai confondendo Fabric Gradle Plugin e Crashlytics. Scopri diversi componenti nel menu a sinistra.
Eugen Pechanec,

4

Nel mio caso, ciò è stato causato da una versione non corrispondente delle librerie di supporto Android. Ho aggiornato tutti i moduli all'ultima versione (28.0.0) e ho risolto il problema.


1

Dopo aver installato correttamente Fabric, questo problema è stato risolto per me

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

Ho avuto questo messaggio di errore e molti altri mi piace

x-version is deprecated and use y-version instead and it'll be removed in 2019

e tutto il mio progetto ha iniziato a dare improvvisamente gli stessi messaggi di errore.

Android Studio stava avvisando del mio programma antivirus. Ho provato a configurarlo ma non ha funzionato.

Finalmente ho disinstallato l'antivirus QuickHeal dal mio sistema e ora tutto va bene


0

Tutte le altre risposte riguardano problemi con componenti di terze parti .

Ecco come aggiornare il tuo progetto che utilizza registerResGeneratingTaskdirettamente:

Prima:

variant.registerResGeneratingTask generateIcon, ICON_DIR

Dopo:

variant.mergeResourcesProvider.get().dependsOn generateIcon
variant.registerGeneratedResFolders files(ICON_DIR)

0

Livello di progetto Build.Gradle

Usa la seguente versione della dipendenza dai servizi di 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'
    }
}

Risolto il problema per me.


-2

Per me questo avviso è scomparso quando ho disattivato il plug-in Fabric Gradle, o per favore controlla se usi fabric o un altro plug-in che sono responsabile di questo avviso.


Tessuto rimosso, ma appare ancora questo avviso.
Valentin Baryshev,

Non sto usando tessuto e ho questo messaggio!
thiagolr,

3
La disabilitazione del plugin io.fabric ha ridotto 8 di questi avvisi a 4. Quindi sembra che ci sia più di una fonte.
Mario Huizinga,

4
com.google.gms:google-services 4.0.1ed 4.0.2entrambi causano questo avviso.
Martin Zeitler,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.