React Native en Android no pudo encontrar las herramientas de compilación

92

¿Qué causa el siguiente problema? ¿Mi versión del SDK de Android no es compatible?

Starting JS server...                                                                     
Building and installing the app on the device (cd android && gradlew.bat installDebug)...

FAILURE: Build failed with an exception.                                                  

* What went wrong:                                                                        
A problem occurred configuring project ':app'.                                            
> failed to find Build Tools revision 23.0.1       
Łukasz Rzeszotarski
fuente
Desde la v25 del administrador de SDK, ahora tiene que instalar la herramienta de compilación correcta de Android Studio porque el androidcomando se elimina: stackoverflow.com/a/44295114/82609
Sebastien Lorber

Respuestas:

136

Probablemente necesite actualizar sus herramientas de compilación.

Enfrenté el problema cuando intenté actualizar desde la interfaz gráfica, no mostraba la versión menor exacta, por lo que no pude actualizarla.

Se solucionó mirando las versiones disponibles desde el terminal con:

android list sdk -a

[...]
Packages available for installation or update: 156
1- Android SDK Tools, revision 24.4
2- Android SDK Platform-tools, revision 23.0.1
3- Android SDK Platform-tools, revision 23.1 rc1
4- Android SDK Build-tools, revision 23.0.1

[...]

E instalar la versión correcta con:

android update sdk -a -u -t 4
edur
fuente
3
¿Qué es este androidprograma? ¿Dónde lo consigo?
jameshfisher
2
@jameshfisher es parte del SDK de Android, se encuentra en el directorio "herramientas", por ejemplo: ~ / android-sdk / tools / android
edur
Intenté actualizar con Android Studio varias veces, pero nunca funcionó. Sin embargo, este comando lo hizo. Gracias.
jordancooperman
En realidad, está en android-sdk-linux en el proyecto react.
Ghita Tomoiaga
Tenga en cuenta que en las nuevas versiones del administrador de SDK, el androidcomando ya no funciona y uno tiene que ejecutar Android Studio para acceder a esta configuración; consulte stackoverflow.com/a/44295114/82609
Sebastien Lorber
73

Solo una nota: es posible obtener este error porque la única versión de las herramientas de compilación que ha instalado es demasiado nueva .

Obtuve precisamente el error que obtuvo el OP (quejándose de que react-native no pudo encontrar la revisión 23.0.1 de Build Tools). Cuando revisé mi Android SDK Manager, vi esto:

captura de pantalla que muestra 23.0.2 "Instalado" pero 23.0.1 "No instalado"

Ingenuamente pensé que la instalación de la última versión de las herramientas de compilación (23.0.2 en el momento de escribir este artículo) funcionaría, pero aparentemente no. Además, la instalación de 23.0.1 solucionó el problema.

Mark Amery
fuente
el mismo problema aqui. ¿No hay forma de utilizar herramientas de compilación más nuevas? tal vez alguna configuración.
sodik
Esta sugerencia también funcionó para mí. 23.0.2 era demasiado nuevo, imagínate. Gracias.
Fernando
1
@boatcoder esta respuesta (instalar herramientas de compilación más antiguas) no es menos correcta que la de sodik (modificar build.gradlepara que React Native use herramientas de compilación más nuevas). Las herramientas de compilación de Android parecen seguir a SemVer, por lo que modificar build.gradlepara usar un parche posterior o una versión menor generalmente debería ser seguro, puede proporcionar algunas correcciones de errores a nivel de plataforma o mejoras de rendimiento, y le evita tener que descargar nada. Pero romperá su aplicación si se realiza en una versión principal , e introduce algún riesgo incluso con parches / versiones menores, ya que está utilizando RN con herramientas de compilación que Facebook no pretendía.
Mark Amery
28

También tuve un problema con la versión más nueva de las herramientas de compilación SDK (igual que Mark) pero logré resolverlo modificando android/app/build.gradley configurando la versión adecuada, por ejemplo

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
...

ACTUALIZAR: Como sugirió Mark, es aconsejable actualizar solo la versión menor (o parche) de esta manera. Otra razón por la que no actualizar esta versión es cuando tiene muchas bibliotecas de terceros con parte nativa; es posible que termine actualizándolas todas. Por lo tanto, debe sopesar los posibles beneficios de la versión más nueva frente a un poco más de trabajo.

sodik
fuente
1
no olvide cambiar la línea 85 targetSdkVersion 22a targetSdkVersion 23también.
Xianlin
Descubrí que el archivo build.gradle generado tenía buildToolsVersion "23.0.1" pero solo tenía la versión 23 (23.0.0) instalada. No estoy seguro de dónde "react-native init" encuentra los números de versión del SDK de android / tools. Entonces, ¿la causa es en realidad que el comando react-native init no está usando el número de versión de las herramientas disponibles?
ferdil
Creo que 23.0.1 es fijo (tal vez pueda cambiar con las versiones de RN) pero no hay detección afaik.
sodik
Gracias, esto resolvió mi problema, cambió de 23 a 25 y de 23.0.1 a 25.0.0
niren
4

Necesita modificar 4 archivos

grep buildToolsVersion * -r | grep 23.0.1

Examples/Movies/android/app/build.gradle:    buildToolsVersion "23.0.2"
Examples/UIExplorer/android/app/build.gradle:    buildToolsVersion "23.0.2"
ReactAndroid/build.gradle:    buildToolsVersion "23.0.2"
local-cli/generator-android/templates/src/app/build.gradle:    buildToolsVersion "23.0.2"
gfax
fuente
3

Tuve que cambiar mi proyecto de Android build.gradlea:

compileSdkVersion 23
buildToolsVersion "23.0.3"

defaultConfig {
    applicationId "com.demoproject"
    minSdkVersion 16
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    ndk {
        abiFilters "armeabi-v7a", "x86"
    }
usuario6428609
fuente
3

Significa que las herramientas de compilación de Android instaladas en su sistema son algo más que en el archivo de configuración de su aplicación (su archivo de configuración apunta a 23.0.1) pero probablemente tenga 23, 24 o 25.0. * En su sistema.

La solución para solucionar este problema:

  1. Edite el build.gradlearchivo ubicado debajo anroid/appen la carpeta de su proyecto
  2. Busque la entrada buildToolsVersion"23.0.1" y reemplácela con la última versión que tenga en su sistema. Lo puedes encontrar aquí:C:\Program Files (x86)\Android\android-sdk\build-tools

O puede intentar instalar en su sistema la versión que tiene en el build.gradlearchivo (con el administrador de SDK).

llioor
fuente
1

Desde Android SDK Manager v25, debe instalar las herramientas de compilación correctas directamente desde Android Studio porque el androidcomando ya no funciona:

instalar desde android studio

Sebastien Lorber
fuente
Para acceder a esta pantalla desde Andriod Studio. archivo -> configuración -> SDK de Android -> Herramientas de SDK -> parte inferior derecha "Mostrar detalles del paquete" Agregué este comentario ya que me tomó un tiempo encontrarlo.
Jason Allshorn
1

Busque el número de versión en el /Users/username/Library/Android/sdk/build-toolsdirectorio y luego modifique el número de versión buildToolsVersioncorrespondiente a la configuración de Gradle

usuario5710491
fuente
1

Si tiene Build Tools versión 24.0.1, actualice su build.gradlepara que coincidabuildToolsVersion "24.0.0"

Mi se Android/Sdk/build-tools/24.0.1/source.propertieshabía Pkg.Revisionpuesto a 24.0.0.

Muqsith
fuente
0

Tuve este problema al intentar compilar en la línea de comando siguiendo la documentación de react native. Resolví este problema abriendo el proyecto en Android Studio. Las dependencias no coincidentes aparecerán en la barra de herramientas de falla de compilación en la parte inferior de la aplicación. Para cada falla, haga clic en el enlace para resolver el problema.

Bradford Condon
fuente
0

Descubrí que también sucede si desinstaló algunos paquetes de su proyecto react-native y todavía hay paquetes en sus dependencias de compilación gradle en la parte inferior de la página como:

{ project(':react-native-sound-player') } Asegúrese de eliminar el código asociado en el archivo MainApplication.java después de eliminar el proyecto (': react-native-sound-player')

Kêvâl Dholakiya
fuente