Estoy tratando de ejecutar AwesomeProject en mi Nexus5 (android 5.1.1).
Puedo construir el proyecto e instalarlo en el dispositivo. Pero cuando lo ejecuto, aparece una pantalla roja que dice
No se puede descargar el paquete JS. ¿Olvidó iniciar el servidor de desarrollo o conectar su dispositivo?
En reaccionar iOS nativo, puedo elegir cargar jsbundle sin conexión. ¿Cómo puedo hacer lo mismo para Android? (O al menos, ¿dónde puedo configurar la dirección del servidor?)
Actualizar
Para ejecutar con el servidor local, ejecute los siguientes comandos en el directorio raíz del proyecto react-native
react-native start > /dev/null 2>&1 &
adb reverse tcp:8081 tcp:8081
Por favor, eche un vistazo a la respuesta de dsissitka para más detalles.
Para ejecutar sin un servidor, incluya el jsfile en el apk ejecutando:
- crear una carpeta de activos en
android/app/src/main
curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"
Por favor, eche un vistazo a la respuesta de kzzzf para más detalles.
android
react-native
Mateo
fuente
fuente
adb reverse
que no es compatible?adb reverse tcp:8081 tcp:8081
necesita la versión ADB 1.0.32, lareverse
opción no está en 1.0.31Respuestas:
Para agrupar el archivo JS en su apk mientras hace que su servidor se ejecute (
react-native start
) descargue el paquete en el directorio de activos de su aplicación:Con la próxima versión (0.12) arreglaremos el
react-native bundle
comando para trabajar con proyectos de Android como se esperaba.fuente
Lo siguiente me hizo funcionar en Ubuntu 14.04:
Actualización : ver
Actualización 2 : @scgough Recibimos este error porque React Native (RN) no pudo obtener JavaScript del servidor de desarrollo que se ejecuta en nuestras estaciones de trabajo. Puedes ver por qué sucede esto aquí:
https://github.com/facebook/react-native/blob/42eb5464fd8a65ed84b799de5d4dc225349449be/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java#L116-L137
Si su aplicación RN detecta que está utilizando Genymotion o el emulador, intenta obtener el JavaScript de GENYMOTION_LOCALHOST (10.0.3.2) o EMULATOR_LOCALHOST (10.0.2.2). De lo contrario, se supone que está utilizando un dispositivo e intenta recuperar el JavaScript de DEVICE_LOCALHOST (localhost). El problema es que el servidor de desarrollo se ejecuta en el host local de su estación de trabajo, no en el dispositivo, por lo que para que funcione, debe:
fuente
Ok, creo que he descubierto cuál es el problema aquí. Tenía que ver con la versión
watchman
que estaba ejecutando.En un nuevo shell, ejecute
brew update
entonces:brew unlink watchman
luego:brew install watchman
ahora puede ejecutar
react-native start
desde su carpeta de proyectoDejo este shell abierto, creo una nueva ventana de shell y ejecuto:
react-native run-android
desde mi carpeta de proyecto. Todo esta bien con el mundo.PD. Originalmente estaba en la versión 3.2 de watchman. Esto me actualizó a 3.7.
pps. Soy nuevo en esto, por lo que podría no ser la ruta más rápida hacia la solución, pero me ha funcionado.
* MÁS INFORMACIÓN PARA EJECUTAR / DEPURAR EN UN DISPOSITIVO *
Puede descubrir que si implementa su aplicación en su dispositivo Android en lugar de un emulador, obtiene una pantalla roja de la muerte con un error que dice
Unable to load JS Bundle
. Debe configurar el servidor de depuración para que su dispositivo funcione con su computadora. Reaccione ... ya sea su nombre O dirección IP.Menu
botón del dispositivoDev Settings
Debug server host for device
oChange Bundle Location
192.168.1.10:8081
Más información: http://facebook.github.io/react-native/docs/running-on-device-android.html
fuente
brew uninstall watchman
antes de instalar la última versión para mí.Desde su directorio de proyecto, ejecute
Produce lo siguiente:
fuente
react-native run-android
desde la carpeta del proyecto. Se construye bien en la terminal, pero tan pronto como la aplicación se abre en mi dispositivoUnable to download JS bundle
Una solución fácil que funciona para mí con Ubuntu 14.04.
El emulador (ya lanzado) devolverá: No se puede descargar JS Bundle; iniciar de nuevo el servidor JS:
Presiona Reload JS en el emulador. Funcionó para mi. Espero que ayude
fuente
En la aplicación en Android abrí Menú (Comando + M en Genymotion) -> Configuración de desarrollo -> Servidor de depuración host y puerto para dispositivo
establezca el valor en: localhost: 8081
Funcionó para mi.
fuente
Después de probar una combinación de las respuestas aquí, esto es lo que está funcionando para mí.
Estoy usando Genymotion como mi emulador.
1 Inicie el emulador Genymotion.
2 Desde una terminal
3 Recargar desde el emulador.
Se carga!
Ahora puedo comenzar a desarrollar.
fuente
¡Elimina la aplicación de tu teléfono! Intenté varios pasos, pero finalmente lo logré.
$ react-native run-android
Dev Settings
y luego aDebug server host & port for device
. Ingrese la IP de su servidor (IP de su computadora) y el host8081
, por ejemplo192.168.50.35:8081
. En una Mac, puede encontrar la IP de su computadora enSystem Preferences -> Network -> Advanced... -> TCP/IP -> IPv4 Address
.Reload JS
.fuente
Aparentemente, adb reverse se introdujo en Android 5.0
Obteniendo "error: cerrado" dos veces en "adb reverse"
Supongo que tenemos que seguir adelante con la respuesta de kzzzf
fuente
No tengo suficiente reputación para comentar, pero esto se refiere a la respuesta de dsissitka. Funciona también en Windows 10.
Para reiterar, los comandos son:
fuente
Estos son los pasos simples para ejecutar su aplicación en Android (versión):
1. Vaya a la raíz de su aplicación.
2. Ejecute este comando.
Todos sus archivos se copian.
3. Crear APK firmado.
Abra el estudio de Android.
Compilación> Generar APK firmado> [Rellene los detalles requeridos, se debe generar una pulsación de tecla antes de este paso]
Su APK debe generarse sin ningún error. Instale en su dispositivo y esto debería funcionar sin ningún problema.
También puede conectar su dispositivo y presionar directamente el icono Ejecutar en el estudio de Android para realizar pruebas.
Generando pulsación de tecla:
Ir a C: \ Archivos de programa \ Java \ jdkx.x.x_x \ bin
correr
Probablemente le pedirá que complete algunos detalles. Hágalo y tendrá su archivo de pulsación de tecla ( my_private_key.keystore ) que se puede usar para firmar su apk.
fuente
react-native bundle
recibir un error: recursos duplicadosEstaba obteniendo esto en Linux después de detener el
react-native run-android
proceso. Parece que el servidor de nodo todavía se está ejecutando, por lo que la próxima vez que lo ejecute, no se ejecutará correctamente y su aplicación no podrá conectarse.La solución aquí es matar el proceso de nodo que se ejecuta en un Xterm que puede matar al
ctrl-c
abrir esa ventana (más fácil) o puede encontrarlo usandolsof -n -i4TCP:8081
entonceskill -9 PID
.Luego corre de
react-native run-android
nuevo.fuente
Verifica tu conexión wifi.
Otra posibilidad podría ser que no esté conectado a wifi, conectado a la red incorrecta o que la dirección IP sea incorrecta en la configuración de desarrollo. Por alguna razón, mi Android se desconectó del wifi y comencé a recibir este error, sin saberlo.
fuente
Corriendo en el dispositivo
He encontrado otra respuesta.
fuente
Una actualización
Ahora en Windows no necesita ejecutar react-native start. El empaquetador se ejecutará automáticamente.
fuente
Una cosa importante para verificar que nadie ha mencionado hasta ahora: Verifique su firewall local, asegúrese de que esté APAGADO .
Vea mi respuesta aquí: https://stackoverflow.com/a/41400708/1459275
fuente
Estoy usando Ubuntu y Android solamente, y no pude hacerlo funcionar. Encontré una solución realmente simple que es actualizar su archivo package.json, cambiando estas líneas:
a
Y luego ejecutas el servidor escribiendo
Esto garantiza que el dispositivo Android busque el servidor de nodo en su computadora en lugar de localmente en el teléfono.
fuente
La pregunta inicial fue sobre la recarga de la aplicación en un dispositivo físico.
Cuando está depurando la aplicación en un dispositivo físico (es decir, a través de adb), puede volver a cargar el paquete JS haciendo clic en el botón de "acción" superior izquierdo de su dispositivo. Esto abrirá el menú de opciones (Recargar, Depurar JS remotamente ...).
Espero que esto ayude.
fuente
Este error puede resolverse fácilmente siguiendo estos pasos:
fuente
adb reverse tcp:8081 tcp:8081
en la carpeta raíz de mi aplicación?Puede seguir las instrucciones mencionadas en la página oficial para solucionar este problema. Este problema ocurre en un dispositivo real porque el paquete JS se encuentra en su sistema de desarrollo y la aplicación dentro de su dispositivo real no es consciente de su ubicación.
fuente
En la nueva configuración React Native (seguro 0.59) la depuración está dentro
android/app/src/debug/res/xml/react_native_config.xml
fuente
Inicie los dos terminales en el mismo y ejecute el primer terminal react-native start y el segundo terminal react-native run-android este problema se resuelve de manera simple. Y la mejor de las suertes
fuente
Hola, estaba enfrentando este problema con mi proyecto desnudo react-native, el simulador IOS funciona bien, pero Android seguía dándome este error. Aquí hay una posible solución que me ha funcionado.
paso 1, verifica si el dispositivo adb está autorizado al ejecutarlo en tu terminal: dispositivos adb
si no está autorizado, ejecute los siguientes comandos
paso 2, sudo adb kill-server paso 3, sudo adb start-server
luego verifique si el comando adb devices muestra la lista de dispositivos conectados al dispositivo emulator-5554
en lugar de no autorizado si es un dispositivo en lugar de no autorizado
paso 4, ejecuta npx react-native run-android
esto ha funcionado en mi caso, espero que esto resuelva tu problema.
fuente
Esto me pareció extraño, pero obtuve una solución. Noté que de vez en cuando mi carpeta del proyecto se volvía de solo lectura y no podía guardarla de VS. Así que leí una sugerencia para transferir NPM del usuario local PATH a la variable global PATH de todo el sistema, y funcionó de maravilla.
fuente
Ejecutar npm start desde el directorio react-native me funcionó.
fuente