registerresgeneratingtask registergeneratedresfolders filecollection androidtestcompile android android-studio gradle kotlin android-studio-3.0

registergeneratedresfolders - androidtestcompile deprecated



RegisterResGeneratingTask está en desuso, use registerGeneratedFolders(FileCollection) (7)

Usando el nuevo estudio de Android con el nuevo plugin 3.0.0 Gradle.
Al construir alguna advertencia sucedió:

registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)


Después de instalar Fabric correctamente, este problema se resolvió por mí.

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'' } }

build.gradle

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


El problema se resuelve con el complemento de servicios de Google versión 4.3.0 (resuelto con esta confirmación )

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()); } }

Encontrado here


En mi caso, esto fue causado por una versión no coincidente de las bibliotecas de soporte de Android. Actualicé todos los módulos a la última versión (28.0.0) y eso lo resolvió.


Estoy usando el complemento Gradle de servicios de Play com.google.gms:google-services con la versión 4.2.0 .

En el código fuente podemos ver que:

Entonces, para mí, esa fue la razón de mis advertencias y no se puede eliminar hasta que se arregle el complemento. El problema está here

Como mencionó @Zoe, esto también puede provenir de otros complementos de Gradle.

Mejor



Para mí, esta advertencia desapareció cuando apagué el complemento de gradle de tela, o compruebe si usa fabric u otro complemento que yo sea responsable de esta advertencia.


Por lo que puedo decir, los complementos agregados como dependencias de classpath darán problemas. Es decir, Firebase tuvo un problema con él. Spoon y Flutter también. Hacer esta búsqueda en Google revela una gran cantidad de repositorios de GitHub con un problema planteado sobre lo mismo, y todo lo que tienen en común es el hecho de que es un complemento de Gradle. La tela también parece ser una causa, como lo menciona Mate *

Por lo que puedo decir, el problema proviene de uno / varios complementos de Gradle. También puede ser activado por su código de Gradle, pero esto probablemente no sea aplicable si su proyecto es una aplicación y no un complemento de Gradle.

Y como lo menciona Alex Cohn en un comentario, la desaprobación es una advertencia. En este caso, significa que es una característica que eventualmente se eliminará. Entonces, por ahora, suponiendo que sea un complemento (y no creado por usted), puede ignorarlo. Para cuando se elimine, la mayoría / todos los complementos principales deben actualizarse para solucionarlo.

Y, de nuevo, es una advertencia; No es un error. Todavía puede ejecutarlo e ignorarlo si no puede hacer nada al respecto. Desactivar, por ejemplo, el complemento Fabric * es excesivo, ya que todavía funciona.

Yo no uso Fabric, y Fabric no es de código abierto, así que no sé si los desarrolladores lo arreglaron o no.

TL; DR: los complementos de Gradle son la causa. Es una advertencia (no un error), por lo que eliminar los complementos que causan el problema es excesivo. Si no puede arreglarlo, déjelo solo siempre y cuando esté en desuso en este momento (no se elimine)

Si usa Firebase, hay una solución específica que también se menciona en la guía de migración (vinculada más adelante en esta publicación); excluir el módulo de guayaba

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

El problema en sí es bastante difícil de detectar. Por lo que puedo decir, no hay un solo problema que lo cause en todos los complementos que verifiqué (y los vinculé en esta respuesta). Si ha codificado algo que causa el problema (y es posible solucionarlo; agregar un complemento de gradle de terceros no lo está causando), hay algunas cosas que puede intentar solucionar.

Por lo que puedo decir a partir de la causa real, se resuelve actualizando el archivo Gradle (aunque en la biblioteca Spoon, se solucionó cambiando una línea relacionada con TestVariant ) siguiendo los temas en la guía de migración del complemento 3.0.0 de Gradle.

Todo esto está cubierto por los documentos del desarrollador , pero aquí hay algunas cosas que creo que son relevantes en función de las solicitudes de extracción realizadas en proyectos donde ha sido un problema:

Además de actualizar la versión y el complemento de Gradle, también debe agregar el repositorio de google() en los repositories .

compile ahora es implementation o api , pero la implementation es la recomendada.

provided es compileOnly y apk es runtimeOnly

androidTestCompile ha convertido en androidTestImplementation y testCompile -> testImplementation

Si usa sabores, debe usar las dimensiones de sabor (cubiertas por los documentos).

Para los tipos de compilación, debe incluir fallos en caso de que haya una biblioteca que no tenga ese tipo de compilación. Estos se definen en el bloque de profile debajo del bloque de android .

Si aún no lo ha hecho, el complemento gradle debe definirse primero. Si no tiene otras dependencias de classpath, no es un problema. Pero si lo hace, asegúrese de que el complemento gradle se defina primero.

Si usa testVariants , asegúrese de no llamar a testedVariant en la clase. Parece ser la causa de la biblioteca Spoon.

Estas cosas son, por lo que he podido decir, algunos de los cambios que se hicieron para solucionar el problema.