Error "No se pudo obtener BatchedBridge, asegúrese de que su paquete se empaqueta correctamente" al inicio de la aplicación

Tratando de crear un proyecto de reaccionar-nativo en Android 4.4.2 obtengo esta pantalla de error

Dicho error

Y no pudo encontrar ninguna manera de resolverlo. Intenté reiniciar el empaquetador, volver a conectar el dispositivo, incluso reinstalar reaccionar nativo y comenzar nuevo proyecto. En 6.0.0 y versiones posteriores funciona muy bien.

Una posible solución para esto es que probablemente no agrupe su aplicación primero, realice los siguientes pasos y, a continuación, despliegue su app-debug.apk en su dispositivo

 $ cd myproject $ react-native start > /dev/null 2>&1 & $ curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle" 

(Si la carpeta de assets no existe crearlo)

A continuación, ejecute desde la raíz del proyecto

 $> (cd android/ && ./gradlew assembleDebug) 

Instale el apk creado a su dispositivo, desde la ubicación: android/app/build/outputs/apk/app-debug.apk

Déjame saber si eso soluciona tu problema

EDIT :

Usted puede simplemente ponerlo en su package.json como un script para automatizarlo, creo que se arreglará en las próximas versiones de reaccionar-nativo y se ejecutará antes de montar el APK final, por lo que no será necesario (espero así como)

poner :

 "scripts": { "build": "(cd android/ && ./gradlew assembleDebug)", "start": "node node_modules/react-native/local-cli/cli.js start", "bundle-android": "react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --sourcemap-output android/app/src/main/assets/index.android.map --assets-dest android/app/src/main/res/" }, 

O como se mencionó el equivalente curl, pero en la mayoría de los casos el anterior es más robusto

Me encontré con este tema también. Lo que hice fue forzar a matar la aplicación en mi dispositivo, luego abrí otra consola y corrí

 react-native start 

Y luego abrí la aplicación de nuevo desde mi dispositivo y comenzó a trabajar de nuevo.

EDIT: Si está utilizando un dispositivo android a través de USB y lo ha desconectado o su computadora se ha ido a dormir, es posible que tenga que ejecutar primero

 adb reverse tcp:8081 tcp:8081 

Acabo de recibir este error. He aquí lo que hice para arreglar: He seleccionado Dismiss , Went en el menú de desarrolladores, luego Dev Settings , Elija Debug server host & port for device , He añadido mi dirección IP de los ordenadores y el puerto: 192.168.0.xx:8xxx , utilizar lo que sea Las máquinas asignadas a su desarrollador dirección IP está en su red wifi. El puerto es generalmente :8081

Una vez que hice esto, todo salió bien. Además, mientras esté en el menú dev, recuerde seleccionar Enable Live Reload y Debug JS Remotely , lo que hace que su vida sea mucho más fácil durante la depuración.

Esto es lo que funcionó para mí (después de intentar cualquier otra solución que encontré …):

Ejecutar adb reverse tcp:8081 tcp:8081 dentro de \Android\sdk\platform-tools

Yo también lo hice cuando empecé por primera vez con React Native, usando un dispositivo físico. Si ese es el caso, usted necesita hacer algunas cosas extra antes de que pueda empezar. Tienes que ingresar alguna información sobre tu máquina de desarrollo en el "Configuración del dispositivo" de React Native.

Cuando vea el error, agite su dispositivo . Aparecerá un cuadro de diálogo, la última opción será 'Dev Settings'. Seleccione 'Servidor de depuración hot & port for device' e ingrese su IP local y el puerto usado (generalmente 8081).

Consulte el último párrafo de https://facebook.github.io/react-native/docs/running-on-device-android.html

Si nada de la solución funciona para usted, pruebe lo siguiente:

Descubrí que mi carpeta <root>/android/app/build/intermediates/assets/debug estaba vacía y ejecutando cd android && ./gradlew assembleDebug no estaba creando los archivos necesarios, los cuales son usados ​​más tarde por el hilo de javascript en nuestro reaccionar nativo Aplicaciones.

Ejecuté manualmente el siguiente comando que el comando debug build debería haber creado idealmente.

 node node_modules/react-native/local-cli/cli.js bundle --platform android --dev true --reset-cache --entry-file index.android.js --bundle-output /<path to dir>/android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest /<path to dir>/android/app/build/intermediates/res/merged/debug 

Después de ejecutar estos comandos encontré dos archivos de paquetes en este directorio <root>/android/app/build/intermediates/assets/debug

Y luego corrí otra vez cd android && ./gradlew installDebug mi aplicación empezó a funcionar de nuevo.

Depurar más y actualizar lo que está fallando en realidad.

En un terminal independiente , conecte su dispositivo al equipo y ejecute los siguientes comandos:

 react-native start cd user/Library/Android/sdk/platform-tools/ ./adb reverse tcp:8081 tcp:8081 

Terminal de aplicación :

 react-native run-android install apk on your device from this location android/app/build/outputs/apk/app-debug.apk 

Pruebe este comando en el terminal y vuelva a cargarlo. Funcionó para mí

Adb reverse tcp: 8081 tcp: 8081

Ver número :

1.react-native start

2.click Reload(R,R) en su dispositivo.

Tenía la misma excepción en el dispositivo Z3 Compact D5803 – 6.0.1

Fui abierto el archivo de .buckconfig y cambié la línea:

target = Google Inc.:Google APIs:23

a

target = Google Inc.:Google APIs:24

Porque vi en SDK Manager que Android 6.X tiene api nivel 24.

  1. Reiniciar el genymotion
  2. Run react-native run-android
  3. El problema fue resuelto

Para mí, es porque adb no estaba en el PATH . Está localizado /Users/man/Library/Android/sdk/platform-tools para mí, puede ser en algún otro lugar para usted, pero de todos modos, lo encuentra y agregarlo a su camino para ver si esa ayuda.

Dado que utiliza Android <5.0, no puede utilizar el método adb reverse predeterminado, pero Facebook ha añadido documentación oficial para conectarse al servidor de desarrollo a través de Wi-Fi , lo que daría soporte a su versión. Citando las instrucciones para MacOS, pero también las tienen para Linux y Windows:

Método 2: Conectarse a través de Wi-Fi

También puede conectarse al servidor de desarrollo a través de Wi-Fi. En primer lugar, deberá instalar la aplicación en su dispositivo mediante un cable USB, pero una vez hecho esto, podrá realizar la depuración inalámbrica siguiendo estas instrucciones. Necesitará la dirección IP actual de su máquina de desarrollo antes de continuar.

Puede encontrar la dirección IP en Preferencias del sistema → Red.

Asegúrese de que su computadora portátil y su teléfono están en la misma red Wi-Fi. Abra su aplicación React Native en su dispositivo. Aparecerá una pantalla roja con un error. Esto esta bien. Los pasos siguientes arreglarán eso. Abra el menú de desarrollador en la aplicación. Vaya a Configuración del dispositivo → Depurar el host del servidor para el dispositivo. Escriba la dirección IP de su máquina y el puerto del servidor de dev local (por ejemplo, 10.0.1.1:8081). Vuelva al menú Desarrollador y seleccione Recargar JS.

Tenía este problema "al azar" y me llevó algún día para darse cuenta de lo que estaba mal en mi escenario.

Después de haber actualizado a React-native-cli 2.0.1, hubo un mensaje de salida en el registro que me ayudó a cavar y encontrar la causa raíz:

Servidor JS no reconocido, continuando con la compilación …

Después de investigar algunos enlaces encontré este:

No se puede reconocer el servidor JS

Desde que estoy en las ventanas, corrí netstat y descubrí que mi reproductor VLC también se estaba ejecutando en el puerto 8081 causando el problema. Por lo tanto, en mi caso, si empecé el servidor vlc antes del servidor reaccionar-nativo wouldn't trabajo.

Este mismo mensaje de registro no se emitió en las versiones anteriores del reactivo-cli nativo, haciéndolo fallar en silencio.

TL, DR: compruebe si hay algo que se ejecute en el mismo puerto que el gestor de paquetes (8081 por defecto)

Es demasiado tarde, pero esto realmente funciona para mí.

  1. react-native run-android .
  2. react-native start .

El primer comando generará apk para android y lo desplegará en su dispositivo si está conectado. Cuando abra la aplicación, mostrará la pantalla roja con error. Luego ejecute el segundo comando que ejecutará el packager y compilará el paquete de aplicaciones para usted.

Tuve este error también, muy confundido. Cuz todas las respuestas no funciona. Justo después de añadir adb a la ruta.

Para mí, tenía side-sync habilitado y activo. Cerrándola inmediatamente hizo que el asunto desapareciera. Podría valer la pena cerrar esta o cualquier otra comunicación entre la PC y el dispositivo

Terminé teniendo que abrir el puerto que estaba utilizando (8081 por defecto). En Linux, puede hacer lo siguiente

 sudo iptables -A INPUT -p tcp --dport 8081 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 8081 -m conntrack --ctstate ESTABLISHED -j ACCEPT 

Puede probar si realmente necesita hacer esto. Simplemente navega a tu servidor dev en Chrome en tu dispositivo Android. Si no responde, entonces esto podría ser lo que usted necesita. Si responde, entonces esto no le ayudará.

Mi camino es:

 react-native start 

Después de eso en su dispositivo usando:

 click to Reload. 

Ver en la consola reaccionar-nativo, será fetch js paquete de datos.

Mi edición era que pasé a través de mi archivo de AndroidManifest.xml y había quitado la línea

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

Porque mi aplicación no necesitará internet. Sin embargo, la aplicación de depuración de la aplicación de reaccionar necesita acceso a Internet (para acceder al empaquetador) Whoops. 🙂

La mayoría de nosotros enfrentamos este problema por primera vez, cuando empezamos a reaccionar el proyecto nativo # 1.

Pocos pasos simples resolvieron mi problema:

Creé un proyecto de ejemplo usando el comando: react-native init ReactProject1

Solución

La solución es ayudar a local-cli \ runAndroid \ adb.js a encontrar adb.exe, de la misma manera que local-cli \ runAndroid \ runAndroid.js:

Find replace en projectname (lo que hayas dado) \ node_modules \ react-native \ local-cli \ runAndroid

Reemplazar:

Const devicesResult = child_process.execSync ('dispositivos adb');

Por:

Const devicesResult = child_process.execSync ((proceso.env.ANDROID_HOME? Process.env.ANDROID_HOME + '/ platform-tools /': '') + 'dispositivos adb');

Después de hacer por encima del reemplazo, acaba de ejecutar reaccionar-nativo run-android en su cmd, que bundle apk y en un primer intento para instalar js paquete localmente en su dispositivo. (Consiguió el éxito)

Para mí el problema era que 'adb' no fue reconocido – compruebe esta respuesta.

Para corregir esta agregar herramientas de plataforma C: \ Users \ USERNAME \ AppData \ Local \ Android \ sdk \ a variables de entorno

He intentado muchas de las sugerencias arriba / abajo, pero en última instancia, el problema que enfrenté fue un permiso con watchman, que se instaló utilizando homebrew anterior. Si observa los mensajes de su terminal mientras intenta utilizar el emulador y encuentra errores de "Permiso denegado" con respecto al vigilante junto con este mensaje "No se puede obtener BatchedBridge" en su emulador, haga lo siguiente:

Vaya a su directorio /Users/<username>/Library/LaunchAgents y cambie la configuración de permisos para que su usuario pueda leer y escribir. Esto es independientemente de si realmente tiene un archivo com.github.facebook.watchman.plist allí.

Me pareció que también tenía que añadir en un

Reaccionar-actualización nativa

Para que la aplicación se ejecute correctamente.

Yo tuve el mismo problema. Cuando creé un proyecto nativo de reaccionar a través de AwesomeProject de create-react-native-app , funcionó bien en la aplicación de Expo en el teléfono. Después de eso quería usar ese proyecto quickstart para desarrollar mi proyecto y recibí el mismo error que tú.

Después de algunas investigaciones, descubro que es mejor iniciar un nuevo proyecto con el reactivo nativo AwesomeProject (con todas las configuraciones en reaccionar a los documentos nativos). Luego, ejecute este comando:

 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/ 

Que debe arreglar la cosa con el paquete (–dev false no está mostrando las advertencias)

Todo lo que necesitas hacer para que la aplicación funcione en tu dispositivo virtual / real es:

 react-native run-android 

Y debería estar funcionando bien. Al menos funcionó para mí.

Intente limpiar caché

React-native start –reset-cache

Solución: en el directorio "reaccionar-nativo": después de ejecutar el comando "./gradlew: Ejemplos: UIExplorer: android: app: installDebug" correctamente, ejecute commnad " ./packager/packager.sh " successfuly. Luego haga clic en "UIExplorer App" en el emulador o el dispositivo

  • "Obtener el paquete JS" Monstruosamente lento
  • Reaccionar nativo - recarga no hacer nada
  • AssertionError: Esta vista raíz ya se ha adjuntado a un gestor de instancias de catalizador
  • Proyecto de la biblioteca de Android con React Native
  • Reaccionar nativo cómo deshabilitar Android modo dev
  • ¿Hay alguna manera de cambiar el color de la barra de estado de Android con React Native?
  • React-native android fontFamily no tiene efecto
  • Cómo actualizar el número de versión de la aplicación de reaccionar nativo
  • Reaccionar nativo TextInput borde no funciona
  • React Native Android - Recursos estáticos que no se muestran
  • Eventos personalizados en React Native Componente nativo de la interfaz de usuario de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.