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)
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)
Risposte:
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 implementation
o api
, maimplementation
è quello consigliato.
provided
è compileOnly
ed 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 profile
blocco sotto il android
blocco.
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 testedVariant
in 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.
Sto usando il plug-in Gradle dei servizi di riproduzione com.google.gms:google-services
con versione 4.2.0
.
Nel codice sorgente possiamo vedere che:
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
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
L'aggiornamento all'ultima versione del plug-in Fabric Gradle risolve questo problema.
Dal log delle modifiche:
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.
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' }
}
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
Tutte le altre risposte riguardano problemi con componenti di terze parti .
Ecco come aggiornare il tuo progetto che utilizza registerResGeneratingTask
direttamente:
Prima:
variant.registerResGeneratingTask generateIcon, ICON_DIR
Dopo:
variant.mergeResourcesProvider.get().dependsOn generateIcon
variant.registerGeneratedResFolders files(ICON_DIR)
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.
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.
com.google.gms:google-services
4.0.1
ed 4.0.2
entrambi causano questo avviso.