React-native: No se pudo conectar al servidor de desarrollo en el emulador de Android y en el dispositivo real

Creado en 6 ago. 2017  ·  139Comentarios  ·  Fuente: facebook/react-native

POR FAVOR, NO BORRE ESTA PLANTILLA HASTA QUE HAYA LEÍDO LA PRIMERA SECCIÓN.

¿Es este un informe de error?

Es un problema al que me enfrento mientras ejecuto el Awesome Project normal en mi sistema

Si respondió "Sí": Esperamos que le tome alrededor de 30 minutos producir un informe de error de alta calidad. Si bien esto puede parecer mucho, prestar atención a los problemas nos ayuda a solucionarlos más rápido. Para los informes de errores, se REQUIERE completar el resto de esta plantilla, o el problema se cerrará. Si respondió "No": Usamos GitHub Issues exclusivamente para rastrear errores en React Native. Si está buscando ayuda, la página de la comunidad en http://facebook.github.io/react-native/support.html enumera varios recursos que deberían ayudarlo a comenzar. ¡Ahora desplácese hacia abajo!

¿Ha leído las Directrices para contribuir ?

Ambiente

Complete todos los campos relevantes ejecutando estos comandos en la terminal.
  1. react-native -v : 0.47.1
  2. node -v :8.2.1
  3. npm -v :4.1.2
  4. yarn --version:

Luego, especifica:

Pasos para reproducir

(Escriba sus pasos aquí :)

1.Abrir símbolo del sistema en modo administrador
2.ejecutar comando: cd
Comando 3.run: inicialización nativa de reacción
4.ejecutar comando: cd
Comando 5.run: react-native run-android
esto hace que el servidor de paquetes se ejecute automáticamente en el puerto 8081. Pero no puedo acceder al servidor de paquetes desde el navegador de la máquina y el móvil.
Intenté usar http://:puerto/index.android.js
http://localhost :puerto
http://127.0.0.1 :puerto

=> Obtuve la pantalla roja tanto en el móvil como en el emulador con el siguiente mensaje:
Intenté ejecutar el proyecto en un dispositivo real y en un emulador. En Ambos recibí el error: "No se puede cargar el script desde los activos 'index.android.bundle'. Asegúrese de que su paquete esté empaquetado correctamente o esté ejecutando un servidor de paquetes".

screenshot-1502041340496
screenshot-1502041361543
screenshot-1502041433294

al volver a cargar aparece el error: "No se pudo conectar al servidor de desarrollo".

Luego configuré el host y el número de puerto en la configuración de desarrollo en ambos y obtuve el error "No se pudo conectar al servidor de desarrollo".

Comportamiento esperado

Se espera que el proyecto se ejecute en el emulador y el teléfono sin ningún error.

Pero en cambio, recibí el error y lo intenté muchas veces y recibo el mismo error repetidamente y en el mismo patrón.

Demostración reproducible

(Pegue el enlace a un proyecto de ejemplo y las instrucciones exactas para reproducir el problema).

Ran Commands Locked

Comentario más útil

Intenta ejecutar:
adb reverse tcp:8081 tcp:8081
en su símbolo del sistema y vuelva a ejecutar su proyecto después de eso.

Todos 139 comentarios

Sigue siendo un problema con:
reaccionar 16.0.0-alpha.6
RN 0.44.3
nodo 8.2.1
npm 5.3.0
XCode 8.3.3
Simulador iOS 10.3

Entonces, ¿necesito trabajar en una versión anterior de estos?

Me encuentro con esto, y no puedo manejarlo....

algo malo con la última versión?

¿Está funcionando el empaquetador? Debería verlo aparecer cuando ejecuta react-native run-android . También puede iniciarlo solo usando react-native start . Me gustaría averiguar si el problema aquí es que el empaquetador no se inicia en absoluto.

Sí, el empaquetador se está ejecutando. Cuando ejecuto el comando react-native run-android, se abre la ventana del nodo js que indica que el empaquetador se está ejecutando en 8081 y "Cargando el gráfico de dependencia. Listo".
Pero cuando pruebo " localhost:8081/index.android.js " en el navegador del sistema, veo el error "No se puede acceder a este sitio".

Pero cuando creo una API de nodejs normal y la pruebo en el navegador, se abre correctamente.

Tengo el mismo problema. El simulador de iOS funciona bien, por cierto

Cada vez que trato de hacer un nuevo proyecto en RN, es como si me hubiera topado con una pared de nuevos errores cada vez.
Próximo intento el próximo mes de nuevo, supongo...

mismo problema alguien lo soluciono?

Intenta ejecutar:
adb reverse tcp:8081 tcp:8081
en su símbolo del sistema y vuelva a ejecutar su proyecto después de eso.

@ashafizullah : Yo también lo he intentado; pero todavía no hay suerte.

Ocurre en mi dispositivo también.

Tengo usb conectado, adb invertido y empaquetador en ejecución.

Cuando abre el siguiente enlace en el navegador del dispositivo, carga el paquete con éxito:

http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=false&minify=false

Así que sospecho que hay algo mal dentro del propio código Java.

hay alguna solucion a esto? Yo también estoy atrapado aquí. En el proyecto IOS funciona perfectamente

He visto el mismo problema, y ​​eso es todo porque la aplicación de Android no tiene este permiso:

<uses-permission android:name="android.permission.INTERNET" />

Así que asegúrese de que su código de Android pueda acceder a la URL remota desde su aplicación.

tengo el mismo problema nadie puede resolver eso?

También tengo el mismo problema, si alguien encuentra la solución, por favor publíquela. Gracias.

tengo el mismo problema, hago adb reserve tcp: 8081 tcp: 8081 y luego me aseguro de que la computadora y el móvil sean de la misma red, y hago la configuración de desarrollo IP: 8081, pero no pude conectarme al servidor de desarrollo, que resolvió este problema, muchas gracias Uds

Hola gente. He usado console.dir() en react-native y obtuve este comportamiento. Y creo que es normal porque console.dir() es una función browser.window y ningún navegador tiene react-native. Después de eliminar console.dir(), mi aplicación ha funcionado.

Estoy enfrentando el mismo problema en una Mac, ¿alguna novedad?

Tengo el mismo problema en la prueba del dispositivo.

Android 4.1.2

Oye. Chicos, que tienen una versión de Android inferior a 5.0, ¿han intentado usar una conexión wifi en lugar de usb? Mi aplicación se inicia normalmente en Android 4.3 (Huawei mediapad T1 8.0) después de que se haya conectado a través de wifi

tenía este problema, para mí resultó ser el puerto 8081 que estaba siendo utilizado por postgresSQL

Tengo el mismo problema hoy.
Android 4.4.2 y 6.

Mismo problema aquí también. Ocurre cada vez que vuelvo a abrir mi Mac después de un breve período de inactividad. ¿Alguien ha solucionado esto?
adb reverse tcp:8081 tcp:8081 - esto no parece funcionar para mí

screen shot 2017-10-17 at 8 20 03 am

Mi error se resolvió cambiando los límites de inotify.
Este enlace ayudó https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

lo mismo este problema, ayúdame

También tengo el mismo problema al intentar ejecutarlo desde localhost. Funciona en el navegador y en el emulador, pero no en el dispositivo físico

El mismo problema aquí para Android, tanto desde el dispositivo como desde el emulador. Parece que no se puede conectar al empaquetador. Haciendo el "adb reverse..." para el dispositivo físico. También se ejecuta en un puerto personalizado, por lo que hace "react-native start --port 8088", luego configura la dirección IP: 8088 en la configuración de desarrollo en la aplicación.

PREGUNTA: ¿Hay alguna forma de encontrar fallas en la conectividad entre la aplicación (en mi dispositivo Android) y el empaquetador que se ejecuta en una PC con Windows?

Eso es todo lo que veo son las indicaciones de error de tipo "no se puede conectar", y noto que no hay mensajes de registro en el empaquetador. \

ACTUALIZACIÓN: ejecutar "adb reverse --list" mostró que tenía dos entradas inversas. Parece que después de corregir esto, las cosas funcionaron. Todavía tengo solo una "página en blanco", sin embargo, supongo que ese es otro problema ...

Mismo problema con Android, iOS funciona...

como puede pasar esto
También encontré el mismo problema,
pero antes me funciona todo bien
luego obtengo un bucle infinito que hace que mi escritorio sea bastante lento
así que decidí cerrar el emulador y el paquete metro que obtengo de react-native start
Intenté este código a continuación pero no tuve suerte
react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

Estaba enfrentando el mismo problema y perdí un par de días detrás de esto. Resulta que el puerto predeterminado 8081 estaba bloqueado en mi máquina. Cambié el puerto según las instrucciones aquí https://github.com/facebook/react-native/issues/10715 y ahora funciona.

¿Pueden intentar abrir esta URL en el navegador web del dispositivo?

http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=false&minify=false

@kevinresol , si el administrador de paquetes dice que se inició en el puerto 8081 y no puede acceder a él desde el navegador, lo más probable es que su firewall bloquee el puerto. Simplemente intente cambiar el puerto predeterminado o vea si puede abrir el puerto.

Como mencioné en mi publicación anterior , puedo acceder al paquete a través del navegador del dispositivo.

Tengo exactamente el mismo problema que @kevinresol. Puedo ver el paquete en el navegador, pero el error persiste. Estoy en un emulador, pero aún probé adb reverse, pero no tuve suerte.

@bruno02100 si está en Windows y accede a través de wifi, intente desactivar su firewall. A ver si eso soluciona el problema.

@jerrykurian Estoy en Mac ejecutando el emulador de Android. Mi firewall ya está desactivado. Es realmente extraño.

Después de configurar Debug server host & port for device a 192.168.x.x:8081 en Dev Settings (Shark el teléfono, aparecerá el menú)
es trabajo para mi

PD: NO es necesario crear ningún paquete manualmente, se generará automáticamente cuando se conecte correctamente

Creo que cualquier problema de wifi o solución de wifi está fuera de tema. OP estaba hablando de conectarse a localhost a través de USB con adb reverse

Me di cuenta de que este error solo ocurre después de que el emulador está activo durante algún tiempo. Entonces, por ahora, cada vez que aparece este error, simplemente reinicio mi emulador y ejecuto react-native run-android. Es realmente molesto, pero no tengo mucho tiempo para investigar esto, así que tendré que hacerlo.

Puedo conectarme al servidor de desarrollo después de la compilación a través de los estudios de Android, pero si actualizo el código cuando edito el código, mi dispositivo o emulador no se puede conectar al servidor.

mis dependencias
"reaccionar": "16.0.0",
"reaccionar-nativo": "0.50.4",

Puedo confirmar que la solución de @xlebenny de configurar manualmente el host y el puerto del servidor de depuración en el dispositivo funcionó para mí en un proyecto CRNA recién expulsado.

Paso a paso para expulsar y ejecutar un CRNA en Android

En terminales:

  1. create-react-native-app myApp
  2. cd myApp
  3. yarn run eject (Utilicé las opciones predeterminadas "proyecto React Native regular")
  4. react-native run-android

(ahora la aplicación debe compilarse e instalarse en el teléfono)

En el teléfono:

  1. ejecute la aplicación (¡espere ver la pantalla de error roja! - haga clic en el botón Descartar en la parte inferior izquierda)
  2. Agite el teléfono y elija Configuración de desarrollo
  3. Elija el host y el puerto del servidor de depuración para el dispositivo y configúrelo en 192.168.xx: 8081 (conviértalo en su IP de LAN real, por supuesto)
  4. Reinicie la aplicación en el teléfono y debería ver la barra verde en la parte superior "Cargando desde 192.168.xx:8081..."
  5. También debería ver alguna acción "Bundling index.js " en Metro Bundler (que se abrió cuando se ejecutaba react-native run-android )
  6. ¡Después de que el paquete esté terminado, la aplicación debería estar ejecutándose en su dispositivo Android!

La recarga en vivo (cuando los archivos de origen cambian) todavía es posible: simplemente agite el teléfono y toque "Activar recarga en vivo"

@ashafizullah , ¿podría explicar cómo ese comando resolvió el problema? Gracias

¡@plong0 me lo resolvió!

Como señaló @bruno02100 , parece que este error aparece si el dispositivo se abre durante un largo período de tiempo. Deshabilitar el inicio rápido en la configuración del emulador lo resolvió para mí 👍

Escriba adb shell y vea si está escuchando en su servidor local. configure la ip y el puerto del servidor en la configuración de desarrollo. Debería solucionarlo.

@ plong0 gracias por la ayuda pero no me ayudó.
No puedo ejecutar mi aplicación en un dispositivo Android usando MAC.

@ramintagizade : ¿cómo verifico si la aplicación escucha en mi servidor local? cual es el comando:
adb shell [command] ?

Sí, adb shell y netstat.

basado en este http://facebook.github.io/react-native/docs/running-on-device.html

acceda a su dirección IP local (por ejemplo: http://192.168.43.188:8081/) desde su navegador y asegúrese de que se muestre

El empaquetador React Native se está ejecutando.
Visite la documentación

luego acceda a la configuración de desarrollo en su emulador:
dev-settings

Para los usuarios de Mac, puede seguir los pasos a continuación,
Paso 1: ejecute "adb reverse tcp:8081 tcp:8081 "
Paso 2: Presiona "comando m"
Paso 3: Presiona en "Configuración de desarrollador"
Paso 4: Presione "Depurar host y puerto del servidor para el dispositivo"
Paso 5: En la ventana emergente, ingrese "10.0.2.2:${port_id}" en la sección 'port_id', use el puerto en el que está ejecutando su aplicación.
Paso 6: ahora ejecuta "react-native run-android"

si está tratando de depurar la aplicación en su dispositivo Android físico a través de wifi usando una máquina con Windows, entonces es posible que el dispositivo no pueda acceder al puerto de su PC o computadora portátil,
tienes que hacer el puerto accesible. esto implica dos pasos:

1. Primero cree una regla en el firewall. para hacer esto sigue los siguientes pasos:

```
abrir diálogo de ejecución
-escriba wf.msc
-haga clic en las reglas de entrada
-haga clic en nueva regla en el lado derecho
-seleccione el puerto del menú emergente y haga clic en siguiente
-seleccione el puerto tcp y los puertos locales específicos e ingrese el número de puerto como 8081 (predeterminado)
-permitir la conexión
-seleccione todo en la sección de perfil
-dar algún nombre y descripción apropiados
-haga clic en finalizar

  1. tienes que hacer que tu pc sea accesible al exterior, para ello sigue los siguientes pasos:
    -abrir el centro de redes y recursos compartidos desde el panel de control
    -cambiar la configuración del adaptador
    -seleccione su red wifi
    -clic derecho, propiedades
    -haga clic en la pestaña de compartir
    -marque todas las casillas de verificación

Ya está listo, ahora intente ejecutar react-native run-android.

Tuve un problema similar, aunque más tarde me di cuenta de que mi dispositivo emulado (Android) no tenía conexión a Internet (o red) en absoluto. No tenía un símbolo de WiFi o LTE en absoluto. Reiniciar el emulador no resolvió el problema, pero ponerlo en modo avión y apagarlo nuevamente lo resolvió. Podría ser un error general de Android de perder la conexión de red en mi caso.

Nos enfrentamos a este problema. Para solucionarlo, la solución es muy simple a continuación.

  1. Cancele el proceso actual de “react-native run-android” con CTRL + C
    o CMD + C
  2. Cierre la línea de comando de la ventana del paquete de metro que se abrió
    automáticamente.
  3. Ejecute el comando nuevamente, "react-native run-android".

Básicamente, este error indica que su compilación actual falló debido a razones como un problema de código o un problema de dependencia.

Haga clic aquí para más detalles

No estoy seguro de qué causó mi problema con los emuladores de Android en macOS. ¿Quizás configurar nuevos AVD de Android o instalar varias actualizaciones de Android Studio?

Este comando estaba colgando:
watchman watch-del-all

Esto solucionó el problema para mí:
````
cerveza desinstalar vigilante
vigilante de instalación de cerveza

Y solo para asegurarme de que Watchman borre no cuelgue

vigilante vigilar-del-todo
````

Podría resolver este problema reiniciando el emulador finalmente.

Finalmente encontré mi problema.
En mi caso fue para la configuración del proxy de mi emulador.
Simplemente vaya a la configuración del emulador y no configure ningún proxy.

Espero que pueda ayudar

Hola a todos,
Encontré el mismo problema mientras ejecutaba en el entorno de Windows y simulaba usando el simulador de Android.
Después de hacer algunas pruebas y errores, encontré la solución de la siguiente manera:

1>> Cambie el puerto predeterminado en "node_modules\react-native\local-cliserverserver.js":

proceso.env.RCT_METRO_PORT || 8081

a

predeterminado: proceso.env.RCT_METRO_PORT || 9088

si el puerto está bloqueado o enviado a alguna otra aplicación.
Nota : puede elegir cualquier número de puerto, he elegido 9088
2>> Ejecute el comando react-native run-android --port 9088 (Ponga su número de puerto aquí). Este puerto se enviará a adb en ejecución, de modo que tanto el servidor como adb estarán en el mismo puerto.
3>> Ahora, en el simulador de estudio de Android, presione Ctrl+m, para ir a " Configuración de desarrollo", luego seleccione Puerto y host del servidor de depuración para el dispositivo , configure " localhost: 9088 ".
4>> Abra la consola del desarrollador en Chrome usando la url http://localhost :9088/debugger-ui/

Ahora comenzará a cargar los cambios que realice en su aplicación.

Disfruta codificando ahora :)

¡Gracias por publicar esto! Parece que es posible que no esté utilizando la última versión de React Native, v0.53.0, lanzada en enero de 2018. ¿Puede asegurarse de que este problema aún se pueda reproducir en la última versión?

Voy a cerrar esto, pero no dude en abrir un nuevo problema si puede confirmar que sigue siendo un problema en v0.53.0 o posterior.

Cómo contribuirQué esperar de los mantenedores

Sí, estoy usando "react-native": "0.53.0".

Pero este problema surgió cuando estaba usando un proxy corporativo interno. Puede ser que algunos puertos estén bloqueados o utilizados por la empresa. Así que usé esta forma de resolver. Y publicado aquí, para que otros puedan resolver este problema.

Mismo problema en el dispositivo real de Android... Versión 5.1.1

Simplemente abra el símbolo del sistema y vaya al directorio del proyecto, simplemente escriba 'hilo' y presione enter, todo estará bien

@ashafizullah su solución funciona!!!!

Ya sea un simulador o un dispositivo real, para Android, simplemente haga lo siguiente:
image

@Alijaaan el mismo problema que estaba teniendo aparentemente. ¡Gracias!

La única solución que encontré es desde Android Studio AVD Manager , eliminar su emulador actual y agregar uno nuevo. Todos empiezan a funcionar de nuevo.

Muchas gracias @Alijaaan
Estaba usando la configuración de proxy de Android Studio.
image
Desmarqué "usar configuración de proxy de estudio de Android" y luego seleccioné "Sin proxy". Ahora todo esta bien.

El comentario de @esutton resolvió mi problema.

Por cierto, Watchman es mi software favorito. Siempre estaba feliz de hacer una pausa en mi día durante unas horas para buscar problemas aleatorios de RN y darme cuenta de que todo lo que tenía que hacer era ejecutar watchman watch-del-all . Ahora incluso ese comando se bloquea y tenemos que volver a instalarlo de vez en cuando, soy un desarrollador aún más feliz.

react-native run-android --port 9088 funcionó para mí. Gracias @Louis89

encuentro solución
1.apagar mi antivirus
2cerrar mi cortafuegos

Creo que es un problema con los cambios recientes en el código, especialmente si está utilizando una biblioteca de terceros como la base nativa. lo que hice, retrocedí unos pasos Ctrl + z, desinstalé la aplicación del emulador y la reinicié. luego react-native run-android , ¡y todo funciona! tal vez tenga algo que ver con el almacenamiento en caché del emulador

@ pinchez254 estoy de acuerdo contigo. La primera ejecución siempre estará bien.

Inicie el servidor npm usando el comando npm start

Hola, puse la dirección IP de mi PC en Configuración de desarrollo (192.168.1.103:8081) y creé una regla de entrada en el firewall para acceder al puerto TCP 8081, pero aparece este error:
"could not connect to development serve"
ADEMÁS
cuando escriba en el navegador "http://localhost:8081/index.delta?platform=android&dev=true&minify=false" , ¡la compilación comenzó y finalizó con éxito!

Para mí corriendo:

  1. adb reverse tcp:8081 tcp:8081
  2. react-native start --reset-cache
  3. react-native run-android

Hizo el truco

Tuve que abrir dos terminales.
Primer intento
sudo npm start
Despues de correr
react-native run-ios

  1. Asegúrese de que su computadora portátil y su teléfono estén en la misma red Wi-Fi.
  2. Vaya a la carpeta de su proyecto a través del shell. Luego ejecute react-native run-android , react-native start --port=8088
  3. Abra su aplicación React Native en su dispositivo.
  4. Abra el menú Desarrollador en la aplicación. Presione [cmd] + [M] ([Ctrl] + [M] para Windows)]
  5. Vaya a Configuración de desarrollo → Servidor de depuración del host para el dispositivo.
  6. Escriba la dirección IP de su máquina y el puerto del servidor de desarrollo local (por ejemplo, 192.168.1.100:8088).
  7. Vuelva al menú Desarrollador y seleccione Recargar JS.

react-native run-android --port=8081 :)

La única forma en que logré resolver fue: busqué todas las referencias al puerto 8081 y cambié a 9088 (sin usar) y comencé con -- puerto 9088. También cambié la configuración de Dev al puerto 9088. Hubo pocas referencias al puerto 8081 como predeterminado en node_module/react-native dir. El puerto 8081 fue utilizado por virus guard en mi entorno.

Para mí, las herramientas de la plataforma Android no estaban instaladas. Así que instalé usando el siguiente comando.
brew cask instalar android-plataforma-herramientas

Después de eso, ejecutar desde el estudio de Android o la línea de comandos con * react-native run android * funcionó

Reiniciar mi Mac lo resolvió por mí, no tengo idea de por qué

en primer lugar, después de asegurarse de que está en su archivo de proyecto, esta solución me ayuda:
react-native start
lo más probable es que obtenga un error con el código ENOSPC
en este caso, utilice este código:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
después de eso, ejecuta react-native start nuevamente, y lo más probable es que se resuelva el error de ENOSPC.
luego, solo ejecuta react-native run-android
ahí lo tienes, me funciona en linux con el emulador de android de android studio

estaba teniendo este error,
Encontré una solución al hacer esto.
primero eliminé todos los módulos de nodo.
sudo rm -rf node_modules/
luego instalé los paquetes npm nuevamente
npm install

luego ejecuto este comando para verificar que los paquetes de reacción estén bien.

react-native start

me muestra que los paquetes están bien y luego ejecuto el android con root

react-native run-android --root

entonces descubrí que esto está funcionando.

También tenga en cuenta que, a partir de Android 9, las transferencias HTTP (no HTTPS) de texto sin cifrar están prohibidas de forma predeterminada. Para habilitar la conexión al servidor de desarrollo desde un dispositivo que ejecuta su aplicación, agregue este atributo al elemento application en el archivo _AndroidManifest.xml_:

android:usesCleartextTraffic="true"

Más información sobre este problema de Stackoverflow

Puede probar para ver si su dispositivo puede acceder a su servidor de desarrollo escribiendo las URL en el navegador web nativo.

Desafortunadamente, las herramientas de desarrollo nativas reaccionan a la razón del error, pero aparece si intenta hacer su propia conexión HTTP dentro de la aplicación de destino donde obtendrá un seguimiento de pila útil.

@delj Es lamentable que las herramientas de desarrollo nativas de reacción se traguen el motivo del error.

Sugerencia: utilice los marcadores de posición de manifiesto para evitar realizar un lanzamiento con android:usesCleartextTraffic= "true"

AndroidManifest.xml
````
android:name= ".MainApplication"

android:usesCleartextTraffic="${isDebug}"
    >

````

Android/aplicación/build.gradle

 tipos de compilación {
 depurar {
 manifiestoMarcadores de posición = [isDebug:true]
 }
 liberar {
 manifestPlaceholders = [isDebug:false]

        minifyEnabled enableProguardInReleaseBuilds
        proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        signingConfig signingConfigs.release
    }
}

Tuve el mismo problema y lo que funcionó para mí en Windows 10 es, literalmente, abrir el CMD como administrador.

Todavía tengo este problema. ¿Podemos abrir esta copia de seguridad? Esto es completamente ridículo, cómo es un tutorial de "Get Started" si sigues los pasos al pie de la letra y no arranca. Literalmente he pasado horas con este error. Facebook necesita abordar esto. O bien su tutorial es PURAMENTE INCORRECTO o casos bien conocidos de solución de problemas a los que pueden vincularse.

Aquí están mis pasos:

  1. terminal 1: adb inversa tcp: 8081 tcp: 8081
  2. terminal 1: inicio npm
  3. reaccionar-nativo ejecutar-android

Todavía tengo este problema. También intenté agregar el valor del puerto cuando realicé el paso 3, pero tampoco funcionó. Alguien puede ayudarme porfavor.

Lo simpatizo completamente, también pasamos una hora arreglando esto.

Esto funciona para el simulador y creo que el mismo enfoque debería funcionar para su dispositivo.

Hay algunos problemas aquí, el más importante de los cuales es la configuración de texto sin formato. Antes de hacer nada, actualice su aplicación al SDK de Android más reciente o esta configuración no funcionará. Para probar si tiene este problema, pegue este código en una de sus funciones de representación más importantes. Por ejemplo <App

fetch('http://jofarnold.com')
  .then(res => res.text())
  .then(d => alert('ok'))
  .catch(e => {
    console.error(String(e));
});

Tenga en cuenta el http y no el https . Sí, mi sitio no es http. ¡Pero ahora mismo no me arrepiento!

Ahora intenta

fetch('https://httpbin.org')
  .then(res => res.text())
  .then(d => alert('ok'))
  .catch(e => {
    console.error(String(e));
});

Tenga en cuenta los http s .

¿Cuál falla? Si ambos fallan, tiene otros problemas y no puedo ayudarlo, pero intente ver si esas URL funcionan en Chrome en su simulador para descartar que la red no funcione. Si el primero falla (dará una caja roja nativa de reacción) pero el segundo tiene éxito (alerta con ok ), entonces no ha configurado correctamente la configuración de seguridad de Android. Así que hagamos eso.

Primero ingrese lo siguiente en android/.../AndroidManifest.xml en la sección <application

<manifest
....
<application
... other settings
    android:usesCleartextTraffic="true"  <---------- this
    android:networkSecurityConfig="@xml/network_security_config" <------- and this
  >
   ... etc

Luego cree un archivo en android/...res/xml/network_security_config.xml (es posible que deba agregar el directorio xml: el nombre del archivo no es nada especial, solo tiene que ser el mismo que la referencia anterior) así :

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">jofarnold.com</domain>
    </domain-config>
</network-security-config>

Vuelva a compilar asegurándose de hacer react-native start --reset-cache en una terminal (observando el restablecimiento de caché) y react-native run-android en otra.

Ahora que carga la aplicación, obtendrá una ventana emergente ok. ¡Buen material! Te las arreglaste para fetch mi sitio inseguro.

Ahora tenemos que resolver reaccionar nativo. Para mí, el servidor está en 10.0.2.2 y el depurador en localhost o algo así (no recuerdo, estoy escribiendo esto de memoria en parte). De cualquier manera, son diferentes y, por lo tanto, no funciona.

Para esto, cambie jofarnold.com arriba a localhost y luego vaya al menú de configuración en la aplicación (cmd-M en mac) > Configuración de desarrollo. Desactive "Usar JS Deltas" (no funciona bien) y, en Depuración, configure el servidor y el puerto en localhost:8081

Su archivo de configuración de seguridad debería verse así:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">localhost</domain>
    </domain-config>
</network-security-config>

Vuelva a compilar, reinicie react-native start --reset-cache y obtendrá la barra verde en la parte superior de la aplicación con loading... o lo que sea. En la terminal, debería verlo combinado con Delta, Mapa, etc.

Creo que no necesitas hacer las cosas adb reverse . Se hace como parte de los scripts de RN de todos modos.

¡Buena suerte!

Mi problema fue porque tenía mi emulador de Android desconectado de Wifi y datos. Acabo de encenderlos y funciona. Espero que ayude si alguien se enfrenta al mismo problema.

image

Mi problema fue porque tenía mi emulador de Android desconectado de Wifi y datos. Acabo de encenderlos y funciona. Espero que ayude si alguien se enfrenta al mismo problema.

Una cosa importante que debo agregar al comentario de Mateo; si cierra su MacBook y continúa en otra red wifi, esto puede causar que el "wifi" del simulador falle. Debe reiniciar el simulador. Sé que esto no es un problema para el simulador específicamente, pero tiene un buen SEO para este tema, así que espero que dejar este comentario aquí ayude a alguien más.

resuelto usando Android 5.0 o superior, se obtuvo un error en Android 4..4

resuelto usando Android 5.0 o superior, se obtuvo un error en Android 4..4

estoy de acuerdo

Si está ejecutando un emulador de Android 9, debe agregar, como lo indica @delj , android:usesCleartextTraffic="true" en su etiqueta de aplicación en manifest.xml

¿Está funcionando el empaquetador? Debería verlo aparecer cuando ejecuta react-native run-android . También puede iniciarlo solo usando react-native start . Me gustaría averiguar si el problema aquí es que el empaquetador no se inicia en absoluto.

¿Por qué está sucediendo este problema? Tengo una mac con OS 10.13.6 y antes de que el servidor se inicie automáticamente

Gracias @JofBigHealth Hice lo que sugirió y funciona en el emulador y el dispositivo real de conexión.
Pero tengo problemas con la aplicación cuando la descargo del canal alfa. ¿Tienes alguna sugerencia para depurarlo?

@ sheva007 No estoy seguro de lo que quiere decir con "canal alfa". ¿Puede explicar y también incluir más detalles sobre qué problemas tiene específicamente?

@JofBigHealth, lo siento por la información que falta.
ACTUALIZACIÓN: funciona ahora, solo tuve que esperar un tiempo hasta que Google Play haga que la versión de trabajo actualizada esté disponible para los probadores. Muchas gracias :)
mi problema original era que la aplicación funciona bien <Android 9 pero no realiza una llamada de red con Android 9, cuando utilicé su solución, la aplicación, incluidas las llamadas de red, funciona como se esperaba.
pero cuando lo envié a Google Play Alpha Channel. no hace las llamadas de red.

invertir los puertos funcionó para mí
como lo sugiere @ashafizullah

Cerrar Android Studio, que tenía abierto, resolvió el problema de forma extraña. Incierto porque...

ACTUALIZACIÓN: para el simulador a partir de la actualización a 0.57.7, no he encontrado necesario hacer la corrección del proxy inverso adb , ni cambiar el puerto en el menú del desarrollador. Por defecto es algo así como 10.0.1.1:8080 (adivina de memoria) y Just Works. Ejecuto react-native start o react-native start --reset-cache (si es necesario) y compilo desde Android Studio y funciona bien. Si lo configuró para la depuración, debe tener un depurador en ejecución y es posible que deba compilar nuevamente desde Android Studio, ya que a veces no se conecta la primera vez (debido a lo que sospecho que es una condición de carrera), pero por lo demás está bien. Solo recuerde establecer la configuración de seguridad correctamente en el manifiesto de la aplicación

El dispositivo es otra cosa.

Tiene el mismo problema cuando intentó iniciar en el dispositivo. ¿Hay alguna solución para el dispositivo?

Tengo el mismo problema. Por favor, ayúdame.

debe agregar una ruta a sus variables de entorno ... ruta "adb" puede encontrar su ubicación en C:Users\user\AppData\Local\Android\Sdk/platformtools

Esto funcionó para mí en Windows 10: (después de configurar el host y el puerto del servidor de depuración...)
Revisé la configuración de mi firewall (Firewall de Windows> Permitir una aplicación o función a través del Firewall de Windows) y descubrí que hay DOS aplicaciones de Node.js, ¡pero una de ellas no está permitida a través del firewall! Marcó la casilla y guardó, ¡entonces todo funcionó como debería!

Si está ejecutando un emulador de Android 9, debe agregar, como lo indica @delj , android:usesCleartextTraffic="true" en su etiqueta de aplicación en manifest.xml

Recomendado

Mismo error.
windows7+android studio3.3.2.
El servidor de nodos está activo y puedo visitar 127.0.0.1 desde el simulador de Chrome, pero la aplicación Awesome no puede conectarse al servidor de nodos.
También agregué android:usesCleartextTraffic="true" a AndroidManisfesto.xml, pero aún recibí el error

image
image
image
image
image
image
image
image

@aflext ¿Ejecutó el comando adb reverse tcp:8081 tcp:8081 en el cuadro rojo? Eso suele funcionar.

@JofBigHealth Al cambiar la URL de 127.0.0.1:8081 a localhost:8081 lo resolvió.

En mi caso, la solución fue Deshabilitar/Habilitar "Depurar JS de forma remota"

@ashafizullah : Yo también lo he intentado; pero todavía no hay suerte.

@ashafizullah sí, no me está funcionando a mí también.

¿Es posible ejecutar este proyecto a través de Windows????

Mi error se resolvió cambiando los límites de inotify.
Este enlace ayudó https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

¡¡ESTO FUNCIONA!! ¡¡MUCHAS GRACIAS!!

Mi error se resolvió cambiando los límites de inotify.
Este enlace ayudó https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

Esto funcionó para mí. Gracias hombre.

Agregué android:usesCleartextTraffic="true" a AndroidManifest.xml en la etiqueta <application ... y reconstruí la aplicación. Después de eso, comenzó a cargarse normalmente desde el servidor de desarrollo.

Esto me sucedía porque tenía el Depurador ejecutándose y conectado a otro dispositivo. Entonces, el simulador de iOS conectado al depurador estaba bloqueando la conexión del dispositivo Android al empaquetador. Detener la depuración remota en el simulador de iOS permitió que el dispositivo Android se conectara, o también podría comenzar a depurar de forma remota en el dispositivo Android.

Esto funcionó para mí en Windows 10: (después de configurar el host y el puerto del servidor de depuración...)
Revisé la configuración de mi firewall (Firewall de Windows> Permitir una aplicación o función a través del Firewall de Windows) y descubrí que hay DOS aplicaciones de Node.js, ¡pero una de ellas no está permitida a través del firewall! Marcó la casilla y guardó, ¡entonces todo funcionó como debería!

Este era mi problema también, gracias!

Resolví con:

https://www.youtube.com/watch?v=XhiE0HEiYd4

https://stackoverflow.com/questions/44446523/unable-to-load-script-from-assets-index-android-bundle-on-windows

pero... cuando vuelvo a cargar la aplicación en el emulador, se bloquea de nuevo y muestra el mensaje:
NO SE PUEDE CONECTAR AL SERVIDOR DE DESARROLLO

Así que traté de agregar node.js y genymotion player.exe en el firewall y reiniciar todo (geny, reaccionar), y funciona de nuevo...

ctrl+Win cmd command line ipconfig para encontrar la dirección ipV4 la mía es 192.168.0.111, después de eso puse 192.168.0.111:8081 en
image
image

¡Resuelto con éxito!

Agregué android:usesCleartextTraffic="true" a AndroidManifest.xml en la etiqueta <application ... y reconstruí la aplicación. Después de eso, comenzó a cargarse normalmente desde el servidor de desarrollo.

Esto lo arregló. Gracias una tonelada.

Tiene el mismo problema solo en un dispositivo Android real.
Solución:
1) Agregue el archivo android/app/src/main/res/xml/network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">localhost</domain>
    </domain-config>
</network-security-config>

2) Agregar línea a android/app/src/main/AndroidManifest.xml

<application
    ...
    android:networkSecurityConfig="@xml/network_security_config"
    ...
>

Encuentra la cura.
Este problema me ayudó a resolver el problema en los siguientes pasos.

  1. (en el directorio del proyecto) mkdir android/app/src/main/assets
  2. paquete nativo de reacción --plataforma android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src /principal/res
  3. reaccionar-nativo ejecutar-android

https://stackoverflow.com/questions/44446523/unable-to-load-script-from-assets-index-android-bundle-on-windows

Funcionó para mí después de ejecutar adb reverse tcp:8081 tcp:8081 . Anteriormente, estaba abriendo la ventana del servidor de paquetes, pero no sucedía nada después de Cargar el gráfico de dependencia, listo. mensaje.
Ahora todo funciona bien después de ejecutar el comando mencionado anteriormente.

Esto es aplicable a Android 9.0+ de acuerdo con la configuración de seguridad de la red .
Bueno, después de probar todas las soluciones posibles que encontré en la web, decidí investigar manualmente el logcat nativo de Android. Incluso después de agregar android:usesCleartextTraffic="true" , encontré esto en el logcat:

06-25 02:32:34.561 32001 32001 E unknown:ReactNative: Caused by: java.net.UnknownServiceException: CLEARTEXT communication to 192.168.29.96 not permitted by network security policy

Entonces, traté de inspeccionar la fuente de mi aplicación nativa de reacción. Descubrí que en la variante debug , ya hay una configuración de seguridad de red definida por los nativos de React, que entra en conflicto con la variante main .

Hay una solución fácil para esto.
Ir a <app-src>/android/app/src/debug/res/xml/react_native_config.xml
Agregue una nueva línea con su propia dirección IP en elme gusta:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
  <domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="false">localhost</domain>
    <domain includeSubdomains="false">10.0.2.2</domain>
    <domain includeSubdomains="false">10.0.3.2</domain>
    ***<domain includeSubdomains="false">192.168.29.96</domain>***
  </domain-config>
</network-security-config>

Como la IP local de mi computadora (compruebe desde ifconfig para Linux) es 192.168.29.96, agregué la línea anterior en *

¡Entonces, necesitas limpiar y reconstruir para Android!

cd <app-src>/android
./gradlew clean
cd <app-src>
react-native run-android

Espero que esto funcione para usted.

Lo que he hecho: (trabajando en el emulador Android Pie 9)

  1. Configure la IP y el puerto en Debug server host & port for device haciendo clic en Ctrl+M y Dev Setting en el emulador. Asegúrese de configurar el host y el puerto usando el host y el puerto de Bundler (predeterminado: localhost:8081 ) y asegúrese de que su puerto no esté bloqueado por otro proceso
  2. Ejecute adb reverse tcp:8081 tcp:8081 en el directorio del proyecto de inicio
  3. Agregar android:usesCleartextTraffic="true" al nodo <application> en AndroidManifest.xml
  4. Después de cumplir con los tres puntos anteriores, reinicie su proyecto

@ Eyesonly88 esto resolvió el problema para mí, gracias.

Para usted que enfrenta este problema específicamente al configurar su targetSdkVersion en API 28.

Todo lo que necesita hacer es agregar para su archivo network_security_config las siguientes líneas a continuación:

    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>

PD: En mi caso, tengo varios archivos network_security_config para cada sabor, ya que este es un problema de depuración, fue suficiente agregar estas líneas al archivo network_security_config en el sabor de depuración.

================================================== =======================

Más información sobre el error a continuación:

Si vamos a https://developer.android.com/training/articles/security-config.html , veremos que estas líneas de código anteriores son la configuración de seguridad predeterminada para Android API 24 a API 27. (Android 7.0 a androide 8.1).
Esto quiere decir que para Android 9, API 28, que es el que me estaba dando el error, la configuración por defecto cambió.
Más específicamente, la configuración predeterminada para Android API 28 es:

    <base-config cleartextTrafficPermitted="false">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>

.
Esta es la razón por la que me funcionó el uso de la configuración predeterminada para las API antiguas.

Otra cosa que también funcionó para mí al principio fue establecer targetSdkVersion en api 27. Si no desea ejecutar en API 28, esto también podría funcionar para usted.

Si está ejecutando un emulador de Android 9, debe agregar, como lo indica @delj , android:usesCleartextTraffic="true" en su etiqueta de aplicación en manifest.xml

Recomendado

me salvaste el tiempo. muchas gracias.

Chicos, abrí el wifi en el emulador y funcionó para mí.

lo que resolvió mi problema fue usar sudo yarn start en lugar de yarn start
Tengo un script en mi paquete.json con

{
...
"scripts":{
"start":"react-native start"
}
....
}

Si está utilizando un emulador como xCode o Android Studio, no necesita configurar la dirección del servidor dev en la configuración con su IP. Se configurará automáticamente. Simplemente elimínelo y vuelva a ejecutar la aplicación. Esto funciona para mi.

Si está ejecutando un emulador de Android 9, debe agregar, como lo indica @delj , android:usesCleartextTraffic="true" en su etiqueta de aplicación en manifest.xml

Recomendado

Salvaste mi día

Lo que he hecho: (trabajando en el emulador Android Pie 9)

  1. Configure la IP y el puerto en Debug server host & port for device haciendo clic en Ctrl+M y Dev Setting en el emulador. Asegúrese de configurar el host y el puerto usando el host y el puerto de Bundler (predeterminado: localhost:8081 ) y asegúrese de que su puerto no esté bloqueado por otro proceso
  2. Ejecute adb reverse tcp:8081 tcp:8081 en el directorio del proyecto de inicio
  3. Agregar android:usesCleartextTraffic="true" al nodo <application> en AndroidManifest.xml
  4. Después de cumplir con los tres puntos anteriores, reinicie su proyecto

Puedo confirmar que la solución de @rafidamr es la correcta. Pero estaba en un entorno corporativo donde no podía usar el puerto 8081, así que simplemente cambié Metro Bundler a un puerto diferente así:

  • adb reverse tcp:8088 tcp:8088
  • react-native run-android --port 8088

Y, por supuesto, señaló el nuevo puerto en la configuración de desarrollo del emulador.

Gracias @camposbrunocampos 👏🏼, estaba usando target: Android 9.0 con API level 28 .
Se actualizó network_security_config.xml y ahora el emulador funciona bien.

Tuve problemas tanto al iniciarlo en iOS como en Android (lo probé en Android Studio, sin Android Studio, con xcode y sin xcode). Intenté todo lo mencionado anteriormente.

Entonces, lo que NO ayudó fue:

  • red_seguridad_config.xml
  • adb reverso
  • cambiando la dirección IP a la IP del servidor.
  • etc..

Lo único que tenía que hacer era hacer: sudo npm start from react native project directory. Parece un problema de permisos. (usando Mac)

@inspiraluna ese es un problema básico de instalación de npm, debe elegir el directorio de su sistema.

agregue android:usesCleartextTraffic= "true" a su aplicación, en el manifiesto

....
android:useCleartextTraffic="verdadero"
android:tema="@estilo/AppTheme">

Esto funciona para mi.

Agregué android:usesCleartextTraffic="true" a AndroidManifest.xml en la etiqueta <application ... y reconstruí la aplicación. Después de eso, comenzó a cargarse normalmente desde el servidor de desarrollo.

Esto también solucionó el problema para mí, pero lo prologaré diciendo que probé esta solución inicialmente y no funcionó. Tuve que empezar de nuevo con nuevos emuladores, matar y reiniciar abd varias veces, reinstalar Android Studio, actualizar gradle, etc.

@Eyesonly88 Gracias... Funciona para mí
Yo he añadido
android:usesCleartextTraffic= "true" a AndroidManifest.xml

Tengo como objetivo Android 4.0 lamentablemente y cuando ejecuto adb reverse tcp: 8081 tcp: 8081 recibí un error

warn Failed to connect to development server using "adb reverse": Command failed: adb -s 192.168.66.103:5555 reverse tcp:8081 tcp:8081

Así es como solucioné el problema de no tener herramientas de desarrollador en el emulador:
Esta respuesta SO sugiere verificar su archivo MainApplication.java y eliminar BuildConfig.Debug del método getUseDeveloperSupport , por lo que se ve así:

        <strong i="11">@Override</strong>
        public boolean getUseDeveloperSupport() {
            // Return true to load JS from the packager.
            // If BuildConfig.DEBUG is false, assets will be loaded from assets folder.
            return true; // BuildConfig.DEBUG;
        }
¿Fue útil esta página
0 / 5 - 0 calificaciones