Mientras ejecuto mi código nativo react-native run-android obtiene el siguiente error. Estaba funcionando correctamente. Pero después de tomar una nueva extracción de git y npm ci y después de ejecutar, aparece este error.
error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup. Error: Command failed: gradlew.bat app:installDebug -PreactNativeDevServerPort=8081 FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:checkDebugAarMetadata'. > A failure occurred while executing com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction > The minCompileSdk (30) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-29). Dependency: androidx.core:core:1.7.0-alpha01. AAR metadata file: C:\Users\gauraab\.gradle\caches\transforms-2\files-2.1\9e02d64f5889006a671d0a7165c73e72\core-1.7.0-alpha01\META-INF\com\android\build\gradle\aar-metadata.properties.Tengo el mismo problema. Sólo hoy. Cuando intento ejecutar localmente, tengo exactamente el mismo error. Para volver a ejecutarlo, actualizo el campo compileSdkVersion y targetSdkVersion en el archivo android > build.gradle de 29 a 30. Luego, puede ejecutarse nuevamente. Si esta respuesta encaja con usted, puede ir de esta manera. Pero, personalmente, estoy buscando una solución sin cambiar el valor compileSdkVersion y targetSdkVersion
Actualización: simplemente cambie la compileSdkVersion
El problema era justo lo que supuse. Entonces, algunas actualizaciones a una versión menor/versión de parche de una dependencia de Android causaron todo esto hoy.
Para resolver esto, para las dependencias en su archivo build.gradle , si ha especificado que tome la última versión menor/parche cada vez que lo construya, haga que tome una versión estable exacta.
Por ejemplo, mi dependencia de appcompact era,
implementation "androidx.appcompat:appcompat:1.+Esto significa que puede actualizarse a 1.2.x o 1.3.x, etc., a medida que se publiquen dichas actualizaciones de versión. Cambié esto para depender de una versión estable exacta como la siguiente,
implementation "androidx.appcompat:appcompat:1.3.0"Con suerte, esto resuelve el problema para todos.
Observar la misma dependencia de la biblioteca central está causando problemas de compilación de Gradle para todos.
Además, clean project o Invalidate Caches/Restart... las opciones no ayudarían aquí.
Dependencia que afecta:
'androidx.core:core-ktx:1.7.0-alpha01'
Esta dependencia que estaba causando problemas, por eso la hice estable en el archivo build.gradle , luego agregué una nueva línea para resolver los conflictos de dependencia:
configurations.all { resolutionStrategy { force 'androidx.core:core-ktx:1.6.0' } }Para mí, el problema es causado por la version 4.0.0 de react-native-netinfo , que se configuró para recoger automáticamente el último paquete publicado de androidx.core ... Entonces, en ese caso, me di cuenta androidx.core.core-1.7.0-alpha01 se publicó justo cuando comenzó a ocurrir el problema.
Entonces, para solucionar eso, actualicé mi paquete react-native-netinfo de 4.0.0 a 6.0.0 y este problema se resolvió para mí.
Aparentemente rompieron esto hoy.
Puede solucionarlo agregando la siguiente línea al archivo build.gradle de su aplicación (encima del bloque android { } como hermano):
configurations.all { resolutionStrategy { force 'androidx.core:core-ktx:1.6.0' } }Finalmente, la compilación de Gradle se completó con éxito. Árbitro. https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html
Solución sencilla con la versión compatible
compileSdkVersion=29 a compileSdkVersion=30 y sincronice.Si no está dispuesto a cambiar la versión de cumplimiento, entonces
configurations.all { resolutionStrategy { force 'androidx.core:core-ktx:1.6.0' } } agregue el código anterior en build.gradle dentro de android y aplique esto
implementation 'androidx.core:core-ktx:1.7.0-alpha01'
Aquí hay una captura de pantalla de lo que he hecho y funciona perfectamente. cambiar estas lineas de
compileSdkVersion = 29 targetSdkVersion = 29para
compileSdkVersion = 30 targetSdkVersion = 30y también cambiar esta línea de
implementation 'androidx.appcompat:appcompat:1.+'a la implementación 'androidx.appcompat:appcompat:1.3.0'
Como algunos han mencionado, el problema es que la compilación RN se "actualizó" automáticamente a androidx.core:core:1.7.0-alpha01, que depende de la versión 30 del SDK.
La solución es simplemente especificar la versión principal de Android a través de androidXCore en build.gradle
buildscript { ext { buildToolsVersion = "29.0.3" minSdkVersion = 23 compileSdkVersion = 29 targetSdkVersion = 29 ndkVersion = "20.1.5948944" kotlin_version = "1.5.0" androidXCore = "1.5.0" }Descubrir esto fue doloroso. Busqué archivos gradle que actualizarían automáticamente los paquetes así
find . -name '*.gradle' -exec grep -H "\.+" {} \; y encontrado en node_modules/@react-native-community/netinfo/android/build.gradle el siguiente fragmento
def androidXCore = getExtOrInitialValue('androidXCore', null) if (supportLibVersion && androidXVersion == null && androidXCore == null) { implementation "com.android.support:appcompat-v7:$supportLibVersion" } else { def defaultAndroidXVersion = "1.+" if (androidXCore == null) { androidXCore = androidXVersion == null ? defaultAndroidXVersion : androidXVersion } implementation "androidx.core:core:$androidXCore" } }Intente agregar esto en su build.gradle superior en la parte inferior de buildscript . Esto forzará cualquier cosa a una versión específica.
subprojects { project.configurations.all { resolutionStrategy.eachDependency { details -> if (details.requested.group == 'androidx.core' && !details.requested.name.contains('androidx') ) { details.useVersion "1.5.0" } if (details.requested.group == 'androidx.core-ktx' && !details.requested.name.contains('androidx') ) { details.useVersion "1.5.0" } } } }La actualización de los números de versión para que coincidan con los que se muestran en el archivo build.gradle de la plantilla oficial funcionó para mí: https://github.com/facebook/react-native/blob/master/template/android/build.gradle
buildToolsVersion = "30.0.2" compileSdkVersion = 30 targetSdkVersion = 30 ndkVersion = "21.4.7075529"Primero, nunca use + para definir la versión de las bibliotecas en Gradle, trate de dar siempre la última versión.
Si está utilizando Core KTX como se muestra a continuación en sus principales dependencias de Gradle
implementation "androidx.core:core-ktx:+"Solo reemplázalo por
implementation "androidx.core:core-ktx:1.6.0"La versión 1.7.0 de Core y Core-ktx se lanzó ayer (1 de septiembre de 2021), lo que está causando los problemas.
https://developer.android.com/jetpack/androidx/releases/core
Ninguna de las soluciones individuales anteriores funcionó, pero una combinación de ellas funcionó para mí, usando RN 0.63.3 Aquí está la diferencia:
diff --git a/android/app/build.gradle b/android/app/build.gradle index 9c014f8..1b59f65 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -139,6 +139,12 @@ def enableProguardInReleaseBuilds = false */ def jscFlavor = 'org.webkit:android-jsc:+' +configurations.all { + resolutionStrategy { + force 'androidx.core:core-ktx:1.6.0' + } +} + android { compileSdkVersion rootProject.ext.compileSdkVersion diff --git a/android/build.gradle b/android/build.gradle index a32892e..db64506 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -3,12 +3,13 @@ buildscript { ext.kotlin_version = '1.4.0' ext { - buildToolsVersion = "29.0.2" + buildToolsVersion = "29.0.3" minSdkVersion = 21 - compileSdkVersion = 30 + compileSdkVersion = 29 targetSdkVersion = 29 androidXAnnotation = "1.1.0" androidXBrowser = "1.0.0" + androidXCore = "1.5.0" } repositories { google()