En esta compilación se usaron características obsoletas de Gradle, lo que la hace incompatible con Gradle 5.0

81

Tengo un error de gradle:

..."Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0."

Descripción del caso:

  • Adjunto al código base del proyecto las siguientes bibliotecas:

APP / build.gradle

    //(Required) Writing and executing Unit Tests on the JUnit Platform 
testImplementation "org.junit.jupiter:junit-jupiter-api:5.2.0"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.2.0"
    // (Optional) If you need "Parameterized Tests"
testImplementation "org.junit.jupiter:junit-jupiter-params:5.2.0"
    // (Optional) If you also have JUnit 4-based tests
testImplementation "junit:junit:4.12"
testRuntimeOnly "org.junit.vintage:junit-vintage-engine:5.2.0"

testImplementation "io.mockk:mockk:1.8.5"
  • Se actualizó gradle-wrapper.properties

    distributionUrl = https .... gradle- 4.4-all .zip a 4.7-all

  • después de todo ese gradle se construyó el éxito

  • creó la prueba calss

    @TestInstance(TestInstance.Lifecycle.PER_CLASS)
      class TestClass {
    
      @Test
      internal fun testName() {
        Assert.assertEquals(2, 1 + 1)
      }
    }
    
  • ejecutó la prueba y recibió el mensaje FALLO. ingrese la descripción de la imagen aquí

  • ejecutó la compilación de Gradle con un argumento de línea de comando ./gradlew --warning-mode=allpara ver cuáles son exactamente las características obsoletas. ingrese la descripción de la imagen aquí

Como resultado, no pude construir la aplicación y recibí ese mensaje de FALLO :.

Philipp Buhaievskiy
fuente
1
Eso no es un fracaso. La aplicación aún se compila, ¿no?
EpicPandaForce
1
La aplicación se compila con el mismo mensaje de error. :-(
Philipp Buhaievskiy
2
Eso no es un fracaso. Sería un fracaso si la aplicación no se compilara. En el mejor de los casos, es una advertencia .
EpicPandaForce
@ EpicPandaForce desafortunadamente ES un mensaje de falla como mencioné. La pregunta no es sobre cómo interpretar el mensaje, pero de todos modos mi agradecimiento por su impacto.
Philipp Buhaievskiy

Respuestas:

67

Ejecute la compilación de Gradle con un argumento de línea de comando --warning-mode=allpara ver exactamente cuáles son las características obsoletas.

Le dará una descripción detallada de los problemas encontrados con enlaces a los documentos de Gradle para obtener instrucciones sobre cómo corregir su compilación.

Además --stacktracede eso, también podrá identificar de dónde proviene la advertencia, si se activa por un código desactualizado en uno de los complementos y no en su script de compilación.

tecla de acceso rápido
fuente
Actualicé la descripción del problema con esta sugerencia.
Philipp Buhaievskiy
12
Cuando react-native run-android --warning-mode allerror: unknown option --warning-mode'
corro
12
Prueba a corrergradle build --warning-mode=all
Jordan Daniels
14

Prueba este

cd android && ./gradlew clean && ./gradlew :app:bundleRelease
Masum Billah
fuente
Gracias, ¿podría explicar por qué esto ./gradlew: app: bundleRelease funciona y este ./gradlew bundleRelease no?
Atikur Rahman Sabuj
perfecct funcionó para mí en mi proyecto cordova-9.0: D
minigeek
10

Recibí este error. Resulta que solo sucedió cuando limpié por completo las cachés de RN (proceso bastante elaborado) y luego creé una versión de lanzamiento.

Si limpié las cachés, creé una compilación de depuración y luego una compilación de lanzamiento, todo funcionó. Un poco preocupante pero funciona.

Nota: Mi comando de limpieza es ...

rm -r android/build ; rm -r android/app/src/release/res ; rm -r android/app/build/intermediates ; watchman watch-del-all ; rm -rf $TMPDIR/react-* ; npm start -- --reset-cache

chichilatte
fuente
5

en mi caso actualicé el build.gradlearchivo y realicé la classpathúltima versión del 3.5.2al3.6.3

dependencies {
        classpath("com.android.tools.build:gradle:3.6.3") 
    }
Moumit
fuente
3

Actualice sus dependencias de terceros. por ejemplo , actualicé la dependencia de implementation 'com.github.ybq:Android-SpinKit:1.1.0' a implementation 'com.github.ybq:Android-SpinKit:1.2.0'. y en mi caso el problema se ha resuelto.

Hiren
fuente
siga la sugerencia de la tecla de acceso rápido para obtener una descripción detallada exacta
Hiren
este fue el error y estoy actualizando la versión de Gradle e intento todos los pasos posibles. :(
Anshul1507
2

Establezca la ruta distributionUrl en los archivos gradle-wrapper-properties como:

distributionUrl = https: //services.gradle.org/distributions/gradle-4.10.2-all.zip

Desarrollo de Gautam
fuente
mi gradle tenía esta línea ... .distributionUrl = https \: //services.gradle.org/distributions/gradle-4.8.1-bin.zip Lo cambié a y funcionó. distributionUrl = services.gradle.org/distributions/gradle-4.10.2-all.zip
Aaron Medvick
2

Importante: la respuesta funciona solo para REACT-NATIVE VS CODE Terminal

En el código de VisualStudio, debe ejecutar como se muestra a continuación, luego se omitirá esa advertencia.

react-native run-android modo de advertencia = todos

Si ejecuta a continuación, obtendrá el error en la terminal Al ejecutar react-native run-android --warning-mode all obtengo el error: opción desconocida --warning-mode '

Programador ávido
fuente
1

Solución para el problema: en esta compilación se utilizaron características obsoletas de Gradle, lo que la hace incompatible con Gradle 6.0 estudio de Android Esta solución proporcionada funcionó para mí.

Primero cambie la ruta de clase en las dependencias de build.gradle de su proyecto Desde: classpath 'com.android.tools.build:gradle:3.3.1' Hasta: classpath 'com.android.tools.build:gradle:3.6.1'

Luego, realice cambios en el archivo gradle-wrapper.properties, este archivo existe en la carpeta gradle> envoltorio del proyecto Desde: distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip Hasta: distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip

Luego sincroniza tu gradle.

Nawab Singh Koli
fuente
0

Finalmente decidió degradar el junit 5 a junit 4 y reconstruir el entorno de prueba.

Philipp Buhaievskiy
fuente
¿Como lo hiciste?
Pratik Butani
Pratik, tenga en cuenta que, por ahora, seis meses después, supongo que las circunstancias en torno a este tema han cambiado. Le aconsejo que investigue desde cero, si JUnit 5 es conveniente para usar como instrumento de prueba.
Philipp Buhaievskiy
0

En un proyecto SpringBoot que usa IntelliJ y Gradle, recibí la advertencia "Se usaron características obsoletas de Gradle en esta compilación, lo que la hace incompatible con Gradle 5.0" al ejecutar mi prueba de integración. Lo que resolvió el problema fue: - Ir a: Archivo> Configuración> Construir, Ejecutar, Implementar - Seleccionar para "Construir y ejecutar usando": Intellij IDEA (en lugar de "Gradle") - Lo mismo para "Ejecutar pruebas usando" Eso no explicó por qué Gradle muestra la advertencia, pero eso me permitió realizar la prueba y avanzar en mi trabajo.

Omar D
fuente
0

Se solucionó este tipo de error después de migrar a AndroidX

  • Vaya a Refactor ---> Migrar a AndroidX
Damith Alahakoon
fuente
0

La siguiente solución me ayudó, ya que también recibí la misma advertencia. En su archivo gradle a nivel de proyecto, intente cambiar la versión gradle en classpath

classpath "com.android.tools.build:gradle:3.6.0" to
classpath "com.android.tools.build:gradle:4.0.1"
priyanka.b
fuente
0

Si está utilizando react-native , primero pruebe los siguientes comandos antes de ejecutar su proyecto:

  1. npm install --save-dev jetifier
  2. npx jetify

Ahora ejecute su proyecto nuevamente. Espero que esto funcione.

Sajid Javed
fuente