Evidentemente, es necesario instalar tanto react-native como Android Studio y el sdk de Android. Yo estoy usando la versión 4.2 pero si el mundo es un lugar justo seguirá funcionando en el futuro.
Una vez está todo instalado, debemos asegurarnos de que las diferentes herramientas están disponibles
en el PATH
.
export ANDROID_HOME=$HOME/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
Puede ser necesario hacer unset JAVA_HOME
para asegurarnos de que no está apuntando al sitio equivocado
(o hacerlo apuntar a la versión que te instale android-studio).
Una vez todo es accesible desde el PATH
debemos aceptar la licencia...
sdkmanager --licences
Ahora debemos abrir Android-Studio para configurar el emulador, que se encuentra en Configure > AVD Manager para preparar uno.
Una vez pulsamos el botón play el emulador empezará a correr y cuando corremos npx react-native run-android
nuestra app
empezará a correr en el emulador.
Para mi gusto es más útil (y satisfactorio) debuggear usando un teléfono de verdad.
Para esto es tan simple como conectar el teléfono al ordenador (nos aseguramos que está conectado: adb devices
,
deberíamos ver al menos un device).
Si no aparece puede ser necesario añadir una udev rule para el teléfono. Con lsusb podemos buscar el ID de nuestro teléfono, por ejemplo:
Bus 001 Device 003: ID 1111:eeee Samsung Electronics Co., Ltd Galaxy series, misc. (MTP mode)
y añadimos una rule por ejemplo en /etc/udev/rules.d/51-android-usb.rules
:
SUBSYSTEM=="usb", ATTR{idVendor}=="1111", MODE="0666", GROUP="plugdev"