Reaccionar La compilación nativa de Android falló. Ubicación del SDK no encontrada

473

Tengo un error cuando empiezo a ejecutar Android

What went wrong:
A problem occurred evaluating project ':app'.  
> SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
Pyae Sone Nyein
fuente

Respuestas:

843
  • Vaya al android/directorio de su proyecto react-native
  • Cree un archivo llamado local.propertiescon esta línea:
sdk.dir = /Users/USERNAME/Library/Android/sdk

¿Dónde USERNAMEestá tu nombre de usuario macOS?

Presa
fuente
* Lo que salió mal: se produjo un problema al configurar el proyecto ': aplicación'. > El directorio SDK '/ usr / local / android-sdk' no existe. Pero en realidad mi SDK existe en este camino
Pyae Sone Nyein
3
¿Ustedes arreglaron este problema? También estoy enfrentando esto ahora mismo.
Gasper Kolenc
8
Pude solucionar esto ejecutando desde Android Studio. Una vez que lo hayas hecho, funciona desde la línea de comandos.
Gant Laborde
Sí, crear ese local.properties resolvió mi problema. Extraño pero funciona.
Sanj
113
Si estás en Windowssdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
Razze
423
  1. Vaya a su proyecto nativo de React -> Android
  2. Crear un archivo local.properties
  3. Abre el archivo
  4. pegue su ruta de Android SDK como a continuación

    • en Windows sdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
    • en macOS sdk.dir = /Users/USERNAME/Library/Android/sdk
    • en linux sdk.dir = /home/USERNAME/Android/Sdk

Reemplazar USERNAMEcon su nombre de usuario

Ahora, ejecuta el react-native run-androiden tu terminal.

Naveen TP
fuente
44
Moví mi SDK a mi disco externo. Funciona para mí usando macOS Sierra.
ruelluna
44
en linuxsdk.dir=/home/USERNAME/Android/Sdk
ebin
sdk.dir = / home / USERNAME / Android / Sdk -> funciona para Linux, pero Android Studio para Linux debe estar presente y funcionando (Gradle Running)
MarcoZen
Mostrando error * Qué salió mal: Se produjo un problema al configurar el proyecto ': aplicación'. > El directorio del SDK '/ Users / chandni sharma / Library / Android / sdk' no existe.
Chandni
2
@Chandni Asegúrese de tener instalado el SDK de Android
a_rahmanshah
116

Puedes intentar agregar ANDROID_PATH

export ANDROID_HOME=/Users/<username>/Library/Android/sdk/
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
Nish
fuente
10
Ya tengo ANDROID_PATHen el entorno (Ubuntu, archivo .bashrc). Sin embargo, por algunas razones, sigo recibiendo el problema. Lo arreglé creando local.propertiesy poniendo el camino como se indica en otras respuestas.
Hesam
3
Tengo un mac y env var ANDROID_HOME no ayudó. local.propertieslo hizo, sin embargo.
Henrik
60

Abrir ~/.bash_profiley agregar:

 export ANDROID_HOME=~/Library/Android/sdk/
 export PATH=$PATH:~/android-sdks/platform-tools/
 export PATH=$PATH:~/android-sdks/tools/

ingrese la descripción de la imagen aquí

notdrone
fuente
10
Trabajos. Recuerde reiniciar Terminal o escriba source ~/.bash_profilepara que las nuevas líneas de exportación surtan efecto.
Raptor
Puede usted por favor agregue si cualquier cuerpo es incapaz de encontrar el bash_profile cree uno como para los novatos que no son capaces de encontrar que (así que yo: P)
snehal Agrawal
44

NO ACTUALIZAR local.properties , definitivamente es una mala práctica.

Así es como lo arreglé. Agregue lo siguiente en ~/.bash_profileo ~/.bashrc.

export ANDROID_HOME=/usr/local/share/android-sdk
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH
export PATH=$ANDROID_HOME/build-tools/23.0.1:$PATH

Nota: Solía brew caskinstalar Android SDK siguiendo estas instrucciones .

locropulenton
fuente
66
Esa es la mejor respuesta, no es necesario cambiar las propiedades locales. Funciona perfecto para mí
mike_dz
¿Por qué es esa mala práctica? genuinamente curioso, ya que parece que hacer un cambio localizado es mucho más seguro que hacer un cambio en la ruta de su sistema
Robbie Milejczak
8
Porque si este código se verificará en el control de origen, la siguiente persona que intente construir con él terminará mirando esta página.
Dave Welling
31

echo "sdk.dir = /Users/$(whoami)/Library/Android/sdk" > android/local.properties

nevado
fuente
1
Esta es la forma más segura ya que no está cambiando ningún archivo del sistema global. Y para aquellos que no tienen ese tipo de acceso de administrador a su máquina.
GravyPlaya
23

Si está en Windows, escape (agregue barras invertidas) las barras invertidas y los dos puntos en el android/local.propertiesarchivo. Si no está allí, créelo

sdk.dir = C\:\\Android\\sdk
Sajjad Ashraf
fuente
2
Para Windows, el SDK de Android está en C: \ Archivos de programa \ Android \ android-sdk
Stephane
16

Pasos actualizados para React Native0.58 para comenzar en MAC / Unix

  • Abra bash_profile en terminal

nano ~ / .bash_profile

export ANDROID_HOME = $ HOME / Library / Android / sdk

export PATH = $ PATH: $ ANDROID_HOME / emulator

export PATH = $ PATH: $ ANDROID_HOME / tools

export PATH = $ PATH: $ ANDROID_HOME / tools / bin

export RUTA = $ RUTA: $ ANDROID_HOME / platform-tools

Control+S to save
Control+X to exit
Y to save changes
  • Actualizar cambios en terminal

source ~/.bash_profile

  • Validar ruta:

echo $PATH

  • Confirme si todo está bien:

adb devices

Hitesh Sahu
fuente
Salvó mi vida :)
marco burrometo
A veces necesita cerrar y volver a abrir su terminal
Oluwatobi Samuel Omisakin
14

Para usuarios de Windows

Una solución simple es establecer la ruta del SDK a la lista de Variables de entorno.

  1. Dirígete a las variables ambientales. (Su PC> Propiedades)
  2. Crear nuevas variables del sistema
  3. Establezca el nombre de la variable en ANDROID_HOME
  4. Establezca el valor de la variable en su ubicación de Android Sdk
  5. Presione OK (3 veces para 3 cuadros de diálogo)

Nota:

Su Android Sdk generalmente se encuentra en

C: \ Users \ YourUserName \ AppData \ Local \ Android \ Sdk

Asegúrese de cerrar su terminal actual porque su terminal contiene todas sus variables de entorno preexistentes.

Ozesh
fuente
Eso es. No es necesario editar el local.properties, gracias.
Rhadamez Gindri Hercilio
1
Funciona como un encanto 😊. ¡Muchas gracias!
Kapil Pandey
Recuerde reiniciar su máquina
mtoninelli
1
me perdí ese omg de "cierra tu terminal actual" e intenté casi me rendí y leí de nuevo jajaja ¡gracias! esto funcionó!
Michimcchicken
11

Corrección de errores de ruta de SDK en distribuciones de Linux


Su proyecto no encuentra el SDK establecido en la Configuración del proyecto a través de la ruta proporcionada, por lo que el proyecto debe apuntar en la dirección correcta, y tiene un par de opciones para lograr esto, pero comencemos por encontrar primero la carpeta correcta del SDK.


Encontrar tu SDK


Desde el administrador de paquetes


Si está utilizando una instalación JRE basada en paquetes como Java 8 JRE a través de un PPA personalizado en una distribución basada en Debian, o utilizó OpenJDK , el directorio probablemente será / usr / lib / jvm / java-8-oracle (o cualquier versión que hayas elegido). Puede encontrar esta ruta establecida en la variable de entorno JAVA_HOME :

$ echo $JAVA_HOME
 /usr/lib/jvm/java-8-oracle

Descargar manual


Si lo ha instalado a través de la descarga de Java JRE / SDK , será donde haya colocado la carpeta, por ejemplo, / home / username /jdk-8u121_1.8.0 (o algo similar).

Las instalaciones con script incluso pueden agregar el SDK a / opt / java-8-oracle , pero a partir de este escrito, las instrucciones de instalación de Java dejan la ubicación de la carpeta en sus manos.


Android Studio 2.2


Por último, si está utilizando Android Studio, el SDK se coloca donde lo configuró para colocar los archivos SDK descargados a través del Administrador de SDK de Studio. Al ir a Archivo> Configuración> Aspecto y comportamiento> Configuración del sistema> Android SDK , puede encontrar la configuración de ubicación del SDK en la parte superior con la opción de cambiar, y la carpeta predeterminada es ~ / Android / Sdk .

Android Studio SDK Path

Establecer la ruta del SDK

Ahora que sabemos dónde está el SDK, es hora de que sepan reaccionar nativo.


Opción 1: establecer con local.properties


Este método es muy simple, y todo lo que se necesita es crear el archivo local.properties en la siguiente carpeta, donde Project_Folder es la base de su aplicación React-Native:

Project_Folder / Android / App

En su local.properties, desea establecer la variable sdk.dir en la ruta de su carpeta SDK:

sdk.dir=/home/username/Android/Sdk

Si bien esta es la forma más fácil de solucionar el problema, no es la mejor, especialmente si trabaja con múltiples proyectos. Para cada proyecto, tendrá que crear este archivo para cada proyecto, y si la carpeta cambia, planifique cambiar este archivo para las propiedades locales de cada proyecto.

Una vez que se guarda el archivo, vuelva a ejecutar el comando react-native run-android .


Opción 2: Carpetas de configuración con variables de entorno


La otra opción es establecer las carpetas del SDK en las variables de entorno local que React-Native busca de forma predeterminada. Para hacerlo, agregaremos la ruta ANDROID_HOME. Como beneficio adicional, también podemos agregar nuestras herramientas de Android en el mismo lugar. Necesitamos agregar esto a los archivos .bash_profile o .profile en nuestro directorio de inicio, que se cargan en último lugar, para asegurarnos de que nada más anule la configuración que hacemos. Dado que estos están en su directorio de inicio, no es necesario editar con privilegios escalados.

**$ vim ~/.profile**  (use nano or pico if you prefer)

En el archivo, agregue las siguientes líneas reemplazando la carpeta SDK con la que encontró arriba. Usaré la carpeta de Android Studio como ejemplo:

export ANDROID_HOME="~/Android/Sdk"
export PATH=$PATH:~/Android/Sdk/tools:~/Android/Sdk/platform-tools

Guarde el archivo, luego aplique la configuración de perfil:

$ source ~/.profile
$ echo $ANDROID_HOME
/home/dbrown/Android/Sdk

Si la carpeta Sdk se muestra correctamente, ¡felicidades! Vuelva a ejecutar su comando react-native y observe cómo continúa el proceso de compilación de la aplicación.


Si aún tienes problemas


Si por alguna razón recibe el error " > no se pudo encontrar el destino con la cadena hash 'android-23' en: su carpeta / sdk / , debe asegurarse de que la versión de compilación del proyecto y la versión del SDK instalado coincidan (Reaccionar -Native por defecto es 23.0.1). Puedes encontrar la versión predeterminada en Project_Folder / android / app / build.gradle , y luego buscar buildToolsVersion . Por supuesto, puedes cambiar la versión de este archivo, o en Android Studio ve a Archivo > Estructura del proyecto para cambiar el SDK del proyecto . No recomendaría cambiar esta versión a menos que sepa absolutamente lo que está haciendo; de lo contrario, instale la versión del SDK que busca el proyecto.

DBrown
fuente
7

Debe escribir la ruta completa correcta. No use '~ / Library / Android / sdk'

vi ~/.bashrc

export ANDROID_HOME=/Users/{UserName}/Library/Android/sdk
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools

source ~/.bashrc
hoi
fuente
7

En Ubuntu, donde usted tiene que conseguir SDK de Android por separado del estudio extraño el camino funcionará con Android Studio, pero con Reaccionar nativo, que necesita para crear un nombre de archivo local.properties.

Por ejemplo inn ~/AwesomeProject/androide inserte esta línea:
sdk.dir=/path/to/sdk/in/your/computer

connelblaze
fuente
4

Mira en tu local.propertiesarchivo:

sdk.dir=C\:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk

si el formato es correcto o no

Makvin
fuente
4

Si está usando Ubuntu, simplemente vaya al directorio de Android de su proyecto react-native y cree un archivo llamado local.propertiesy agregue la ruta de Android SDK de la siguiente manera:

sdk.dir = /home/[YOUR_USERNAME]/Android/Sdk
Keivan
fuente
4

Elimine el archivo local.propertiesde la carpeta de Android en su proyecto de reacción y pruébelo.

He hecho esto y lo he logrado.

Zaid Qureshi
fuente
3

Copie el otro proyecto de Android de su sistema local.properties y péguelo en la carpeta de Android del proyecto nativo de React que funcionará.

Rathore
fuente
Felicitaciones por una solución astuta y a prueba de balas;)
Hack06
3

Esto funcionó para mí.

Estoy tomando React Native de Stephen Grider en Udemy y uno de los estudiantes publicó esto en la Lección 50. Pegado literalmente en la línea de comando (sin '$' por supuesto).

$ export "ANDROID_HOME=/usr/local/opt/android-sdk" >~/.bash_profile
Utah
fuente
No hagas esto. dará como resultado el error> The SDK directory '/usr/local/opt/android-sdk' does not exist.
thexande
3

La mejor solución que puedo encontrar es la siguiente:

  1. Descargue Android Studio y SDK de su elección (incluso si cree que no lo necesita, confíe en mí que lo necesitaría para lanzar el archivo apk y algunos cambios manuales en el código de Android).
  2. Archivo> Nuevo> Importar, señale la ubicación donde está su proyecto de Android nativo de reacción.
  3. Si le pide que descargue un SDK específico, descargue el mismo. Puede pedirle que actualice gradle, etc. Siga actualizando donde sea necesario.
  4. Si tiene un SDK de Android existente y conoce la versión, entonces todo lo que tiene que hacer es hacer coincidir esa versión en build.gradle de su proyecto de Android.

Así es como se verá el archivo gradle:

ingrese la descripción de la imagen aquí

Si todo ha ido bien con la configuración de su máquina y puede compilar el proyecto usando Android Studio, entonces nada lo detendrá para construir su aplicación a través del comando reaccionar cli build android.

Con este enfoque, no solo resolverá el problema del SDK, sino que también resolverá muchos problemas relacionados con la configuración de su máquina para el desarrollo de Android. La importación buscará automáticamente la ubicación del SDK y creará local.properties. Por lo tanto, no necesita preocuparse por las intervenciones manuales.

basado en código
fuente
2

Para usuarios de Linux

Su aplicación no está recibiendo la ruta de android-sdk, por lo que si está utilizando Linux (ubuntu), entonces necesita agregar un archivo llamado "local.properties" y guardarlo dentro de la carpeta de Android, que se crea dentro de la carpeta de su aplicación .

Debe agregar la siguiente línea dentro del archivo local.properties, que es la ruta de acceso de su android-sdk dentro de su sistema dentro del sistema para ejecutar la aplicación.

sdk.dir=/opt/android-sdk/

guardar y volver a ejecutar el comando react-native run-android

O

puedes abrir terminal, escribe

sudo nano ~ / .bashrc

y pegue la ruta a continuación al final del archivo

export ANDROID_HOME = "/ opt / android-sdk /"

y reinicie su computadora y vuelva a ejecutar react-native run-android después de eso.

Nota: - Si coloca la ruta establecida en el archivo .bashrc, entonces ni siquiera necesita crear el archivo local.properties.

Yash Vekaria
fuente
Esta no debería ser una solución codificada, sino que depende de dónde esté instalado Android Studio SDK. En mi caso es sdk.dir = "pathWhereAndroidSDKisbeeninstalled / Android / Sdk"
Carmine Tambascia
2

Si crea y android studioproyecta, puede ver local.propertiesque se crea un archivo dentro del directorio raíz del proyecto. Cuando crea un proyecto nativo de reacción, no crea ese archivo para usted. Entonces debes crearlo manualmente. Y tengo que agregarle skd dir. Entonces cree un nuevo archivo dentro de la carpeta de Android (en la raíz) y ponga su ruta sdk como esta sdk.dir=D\:\\Android\\SDK\\android_sdk_studio . Recuerde: elimine single \ con double. Al igual que arriba.

Nouman Ghaffar
fuente
2

Hay 2 formas de resolver este problema:

  1. Simplemente ejecute su proyecto Android nativo react en el estudio de Android, generará automáticamente su archivo local.properties en el proyecto Android nativo react.

  2. a. Vaya a React-Native Project -> Android
    b. Cree un archivo local.properties
    c. Abra el archivo
    d. Pegue la ruta del SDK de Android como a continuación

Hassan danés
fuente
1

Asegúrese de tener instalado el emulador y la versión de Android adecuados. Eso resolvió el problema para mí.

Arel
fuente
1

En su Directorio de proyectos hay una carpeta llamada "android" y dentro de ella está el archivo local.properties. Elimine el archivo y la compilación debería ejecutarse correctamente

Peter Hassaballah
fuente
0

Hay dos archivos gradle, cambie el que está dentro de su C: \ myapp \ android \ build.gradle y no en el directorio padre myapp.

Reemplazar 23.0.1 con su versión de Android Build Tool instalada en mi caso 25.0.0

Ejecute react-native run-android para ver su aplicación en el emulador.

P.Ranjan
fuente
0

Simplemente abra la carpeta Android en el proyecto de Android Studio . Android Studio crea el archivo necesario (local.properties) y descarga la versión SDK para ejecutar Android necesario.

Rasoul Miri
fuente
0

Estoy en Windows y tuve que modificar la ruta sdk independientemente de tenerlo en PATH env. variable

sdk.dir=C:/Users/MY_USERNAME/AppData/Local/Android/Sdk

Cambió este archivo:

MyProject\android\local.properties
NK_Mimrot
fuente
0

El problema es que ha configurado mal las variables de entorno. Debe usar (en Windows) el SDK de:C:\Users\YOUR_USERNAME\AppData\Local\Android\Sdk

Para más información: https://facebook.github.io/react-native/docs/getting-started

Seleccione: Reaccionar el inicio rápido de la CLI nativa en la sección del entorno de desarrollo de Android en el punto 3. Configure la ANDROID_HOMEvariable de entorno

Si lo hace como lo tiene ahora, debe configurar cada proyecto para usar sus variables de entorno y si el proyecto se encuentra entre varias personas con su equipo, puede causar un problema. Si lo hace como le he dicho, no tendrá que configurar ningún proyecto.

IvanAllue
fuente
0

Si tiene instalado Project/androidAndroid Studio , simplemente abra Android Studio y se le notificará que cambie la ruta de ubicación del SDK en el proyecto.

Galleta de la fortuna
fuente
-2

Copie el otro proyecto de Android de su sistema local.properties y péguelo en la carpeta de Android del proyecto nativo de React que funcionará.

sdk.dir=C\:\\Users\\paul\\AppData\\Local\\Android\\Sdk
champika wishwanath
fuente
C \: \\ Users \\ champika \\ AppData \\ Local \\ Android \\ Sdk
champika wishwanath