La creación de Android nativa de React falló. Ubicación SDK no encontrada

Tengo un error cuando comienzo 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. 

  • Vaya al directorio android/ de su proyecto react-native
  • Crea un archivo llamado local.properties con esta línea:

     sdk.dir = /Users/USERNAME/Library/Android/sdk 

    Donde USERNAME es tu nombre de usuario OSX

  1. Ve a tu proyecto nativo React -> Android
  2. Crea 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

Reemplaza USERNAME con tu nombre de usuario

Ahora, ejecute el react-native run-android en su terminal.

Puedes intentar agregar ANDROID_PATH

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

Abra ~/.bash_profile y agregue:

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

enter image description here

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

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

Así es como lo arreglé. Agregue lo siguiente en ~/.bash_profile o ~/.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: utilicé brew cask para instalar Android SDK siguiendo estas instrucciones .

Si se encuentra en Windows, escapa de las barras diagonales inversas y de los dos puntos en el archivo android/local.properties . Si no está allí, créelo

 sdk.dir = C\:\\Android\\sdk 

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


Su proyecto no está buscando 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 lograrlo, pero empecemos por encontrar primero la carpeta SDK correcta.


Encontrar tu SDK


Del administrador de paquetes


Si está utilizando una instalación de JRE basada en paquetes como Java 8 JRE a través de un PPA personalizado en una distribución basada en Debian, o si usó OpenJDK , el directorio probablemente sea / usr / lib / jvm / java-8-oracle (o cualquiera que sea la 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 ha instalado a través de la descarga Java JRE / SDK , estará dondequiera que haya colocado la carpeta, por ejemplo, / home / username / jdk8u121_1.8.0 (o algo similar).

Las instalaciones con guiones pueden incluso 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 haya configurado para colocar los archivos SDK descargados a través del SDK Manager de Studio. Al ir a Archivo> Configuración> Apariencia 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 para cambiar, y la carpeta predeterminada es ~ / Android / Sdk .

Ruta del SDK de Android Studio

Configurar la ruta SDK

Ahora que sabemos dónde está el SDK, es hora de dejar que los nativos de las reacciones lo sepan.


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 archivo 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 trabajas con múltiples proyectos. Para cada proyecto, tendrá que crear este archivo para cada proyecto, y si la carpeta cambia de plan, cambie este archivo para cada propiedad local.properties.

Una vez que se haya guardado el archivo, vuelva a ejecutar el comando run-android nativo de reactivo .


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 bonificación 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 al último, por lo que podemos asegurarnos de que nada más esté anulando la configuración que hacemos. Como 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. Utilizaré 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 del perfil:

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

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


Si todavía tienes problemas


Si por algún motivo recibe el error ” > no se pudo encontrar el destino con la cadena de hash ‘android-23’ en: su carpeta / sdk / , debe asegurarse de que la versión de comstackción del proyecto y la versión del SDK instalado coinciden (Reaccionar -Nativo predeterminado a 23.0.1). Puede encontrar la versión predeterminada en Project_Folder / android / app / build.gradle , y luego buscar buildToolsVersion . Por supuesto, puede cambiar la versión de este archivo, o en Android Studio ir a archivo > Estructura del proyecto para cambiar el Project SDK . 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 el proyecto está buscando.

En Ubuntu, donde tienes que obtener SDK por separado de Android Studio, la ruta funcionará con Android Studio pero con React Native, necesitarás crear un nombre de archivo local.properties .

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

Debes 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 

Para usuarios de Windows

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

  1. Dirígete a las variables medioambientales. (Su PC> Propiedades)
  2. Crear nuevas variables de 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:

Usted 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.

Copie el otro proyecto android local.properties de su sistema y péguelo en la carpeta Android del proyecto React-native, funcionará.

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

Para usuarios de Linux

Su aplicación no está obteniendo la ruta de android-sdk, por lo que si usa 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 la aplicación. .

Debe agregar la línea siguiente 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/

guarde y vuelva a ejecutar el comando react-native run-android

O

puedes abrir la terminal, escribir

sudo nano ~ / .bashrc

y pegue la ruta siguiente al final del archivo

exportar ANDROID_HOME = “/ opt / android-sdk /”

y reinicia tu computadora y ejecuta nuevamente run -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.

Consulte en su archivo local.properties :

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

si el formato es correcto o no

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 textualmente en la línea de comando (sin ‘$’ por supuesto).

 $ export "ANDROID_HOME=/usr/local/opt/android-sdk" >~/.bash_profile 

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, créame que lo necesitaría para liberar el archivo apk y algunos cambios manuales en el código de Android).
  2. Archivo> Nuevo> Importar, apunte a la ubicación donde se encuentra su proyecto nativo de Android.
  3. Si le pide que descargue un SDK específico, descargue el mismo. Puede pedirle que actualice el 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:

enter image description here

Si todo ha ido bien con la configuración de su máquina y puede comstackr el proyecto con el Android Studio, entonces nada le impedirá crear su aplicación a través del comando android cli build nativo.

Con este enfoque, no solo resolverá el problema de 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.

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

 sdk.dir = /home/[YOUR_USERNAME]/Android/Sdk 

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

Reemplace 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.

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

Copie el otro proyecto android local.properties de su sistema y péguelo en la carpeta Android del proyecto React-native, funcionará.

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