error “No se pudo obtener BatchedBridge, asegúrese de que su paquete esté empaquetado correctamente” al inicio de la aplicación

Tratando de crear un proyecto de reacción nativa en Android 4.4.2 aparece esta pantalla de error

dicho error

y no pudo encontrar ninguna forma de resolverlo. Intenté reiniciar el empaquetador, volver a conectar el dispositivo, incluso volver a instalar reactjsr reactjsr como nativo y comenzar un nuevo proyecto. En 6.0.0 y versiones posteriores, funciona bien.

Una posible solución para esto es que lo más probable es que no agrupe su aplicación primero, realice los siguientes pasos y luego implemente su aplicación-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 assets no existe, créela)

Luego ejecuta desde la raíz del proyecto

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

instala la aplicación creada en tu dispositivo, desde la ubicación: android/app/build/outputs/apk/app-debug.apk

avísame si eso soluciona tu problema

EDITAR :

Simplemente puede ponerlo en su paquete.json como un script para automatizarlo, creo que se solucionará en las próximas versiones de react-native y se ejecutará antes de ensamblar el APK final, por lo tanto, esto no será necesario (espero también)

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 de rizo, pero para la mayoría de los casos lo anterior es más robusto

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

 react-native start 

y luego abrí la aplicación nuevamente desde mi dispositivo y comenzó a funcionar nuevamente.

EDITAR: Si está usando un dispositivo Android a través de USB y lo ha desenchufado o su computadora se fue a dormir, es posible que deba ejecutar primero

 adb reverse tcp:8081 tcp:8081 

Acabo de recibir este error. Esto es lo que hice para corregir: seleccioné Dismiss , entré en el menú Desarrollador, luego Dev Settings , Elegir Debug server host & port for device , agregué la dirección IP de mi computadora y el puerto: 192.168.0.xx:8xxx , use lo que sea la dirección IP asignada de su máquina de desarrollador está en su red wifi. El puerto es usualmente :8081

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

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

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

Obtuve esto también cuando comencé por primera vez con React Native, usando un dispositivo físico. Si ese es el caso, debe hacer algunas cosas adicionales antes de poder comenzar. Debe ingresar cierta información sobre su máquina de desarrollo en la ‘Configuración Dev’ de React Native.

Cuando vea el error, agite su dispositivo . Aparecerá un diálogo emergente, la última opción será ‘Configuración Dev’. Seleccione ‘Depurar servidor caliente y puerto para dispositivo’ e ingrese su IP local y el puerto usado (generalmente 8081).

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

Si ninguna de las soluciones le funciona, intente esto:

Descubrí que mi carpeta /android/app/build/intermediates/assets/debug estaba vacía y al ejecutar cd android && ./gradlew assembleDebug no creaba los archivos necesarios, que luego son utilizados por el hilo de JavaScript en nuestra reacción nativa 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 //android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest //android/app/build/intermediates/res/merged/debug 

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

Y luego, volví a ejecutar cd android && ./gradlew installDebug mi aplicación comenzó a funcionar nuevamente.

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

En una terminal separada , conecte su dispositivo a la computadora 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 la terminal y luego vuelva a cargar. Funcionó para mí

adb reverse tcp: 8081 tcp: 8081

ver problema :

1.react-inicio nativo

2.haga clic en Reload(R,R) en su dispositivo.

Es un poco tarde pero esto realmente funciona para mí.

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

El primer comando creará apk para android y lo desplegará en su dispositivo si está conectado. Cuando abras la aplicación, aparecerá una pantalla roja con error. Luego ejecute el segundo comando, que ejecutará el paquete y comstackrá el paquete de aplicaciones por usted.

Estaba teniendo la misma excepción en el dispositivo Z3 Compact D5803 – 6.0.1

Fui abierto el archivo .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 un nivel 24 de api.

  1. reiniciar el genymotion
  2. ejecutar run react-native run-android
  3. El problema fue resuelto

Para mí, es porque adb no estaba en el PATH . Está ubicado /Users/man/Library/Android/sdk/platform-tools para mí, puede ser en otro lugar, pero de todos modos, búscalo y agrégalo a tu ruta para ver si esa ayuda.

Dado que está utilizando Android <5.0, no puede usar el método adb reverse predeterminado de adb reverse , pero Facebook ha agregado documentación oficial para conectarse al servidor de desarrollo a través de Wi-Fi , lo que respaldarí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. Primero deberá instalar la aplicación en su dispositivo con un cable USB, pero una vez que lo haya hecho, puede depurar de manera 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. Verás una pantalla roja con un error. Esto esta bien. Los siguientes pasos lo arreglarán. Abra el menú del desarrollador en la aplicación. Vaya a Dev Settings → Debug server host para el dispositivo. Escriba la dirección IP de su máquina y el puerto del servidor de desarrollo local (por ejemplo, 10.0.1.1:8081). Regrese al menú Desarrollador y seleccione Recargar JS.

Tenía este problema “al azar” y me llevó algún tiempo darme cuenta de lo que estaba mal en mi escenario.

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

Servidor JS no reconocido, continuando con comstackción …

Después de investigar algunos enlaces encontré este:

No se puede reconocer el servidor JS

Como estoy en Windows, ejecuté netstat y descubrí que mi reproductor VLC también se estaba ejecutando en el puerto 8081, lo que causaba el problema. Entonces, en mi caso, si comencé el servidor vlc antes del servidor react-native no funcionaría.

Este mismo mensaje de registro no se publicó en versiones anteriores de react-native-cli, lo que hace que falle silenciosamente.

TL, DR: comprueba si hay algo en ejecución en el mismo puerto que el administrador de paquetes (8081 de forma predeterminada)

Mi problema era que AndroidManifest.xml mi archivo AndroidManifest.xml y había eliminado la línea

porque mi aplicación no necesitará internet. Sin embargo, la aplicación de depuración nativa reactjsr necesita acceso a Internet (para acceder al paquete) Whoops. 🙂

Recibí este error también, realmente confundido. porque todas las respuestas no funcionan. Justo después de agregar adb a la ruta.

Para mí, tenía la sincronización lateral habilitada y activa. Cerrarlo inmediatamente hizo que el problema desapareciera. Podría valer la pena cerrar esta o cualquier otra comunicación entre PC y dispositivo

Terminé teniendo que abrir el puerto que estaba usando (8081 de forma predeterminada). 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 para ver si realmente necesita hacer esto. Simplemente navegue a su servidor de desarrollo en Chrome en su dispositivo Android. Si no responde, entonces esto podría ser lo que necesita. Si responde, entonces esto no te ayudará.

Mi manera es:

 react-native start 

Después de eso en tu dispositivo usando:

 click to Reload. 

Ver en la consola react-native, se buscará js bundle data.

La mayoría de nosotros enfrenta este problema por primera vez, cuando comenzamos a reactjsr el proyecto nativo n. ° 1.

Pocos pasos simples resolvieron mi problema:

Creé un proyecto de muestra 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:

encuentra la instrucción replace debajo de projectname (lo que sea que hayas dado) \ node_modules \ react-native \ local-cli \ runAndroid

Reemplazar:

const devicesResult = child_process.execSync (‘adb devices’);

Por:

const devicesResult = child_process.execSync ((process.env.ANDROID_HOME? process.env.ANDROID_HOME + ‘/ platform-tools /’: ”) + ‘adb devices’);

después de hacer el reemplazo anterior, simplemente ejecute react-native run-android en su cmd, empaquetará apk y al principio tratará de instalar js bundle localmente en su dispositivo. (Tengo éxito)

Yo tuve el mismo problema. Cuando creé un proyecto nativo de reacción a través de la aplicación AwesomeProject de create-reaction-native , funcionó bien en la aplicación Expo en el teléfono. Después de eso, quería usar ese proyecto de inicio rápido para desarrollar mi proyecto y obtuve el mismo error que tú.

Después de algunas investigaciones, descubro que es mejor comenzar un nuevo proyecto con init-AwesomeProject (con todas las configuraciones en reactjsr en 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/ 

Eso debería arreglar la cosa con bundle (–dev false no muestra advertencias)

Todo lo que necesita hacer para que la aplicación se ejecute en su dispositivo virtual / real es:

 react-native run-android 

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

Para mí, el problema era que ‘adb’ no se reconocía – verifica esta respuesta.

Para solucionar esto, agregue C: \ Users \ NOMBRE DE USUARIO \ AppData \ Local \ Android \ sdk \ platform-tools a Variables de entorno

Por favor, compruebe si tiene un error de seguimiento cuando ejecuta react-native run-android : la adb server version (XX) doesn't match this client (XX); killing... adb server version (XX) doesn't match this client (XX); killing...

En ese caso, asegúrese de que /usr/local/opt/android-sdk/platform-tools/adb y /usr/local/bin/adb estén apuntando al mismo adb

En mi caso, se apuntó a /Users/sd/Library/Android/sdk/platform-tools/adb (Android SDK), pero se apuntó a /usr/local/Caskroom/android-platform-tools/26.0.2/platform-tools/adb (Homebrew)

Y se corrigió el problema después de que ambos señalaran a /Users/sd/Library/Android/sdk/platform-tools/adb (Android SDK)

Intenté muchas de las sugerencias anteriores / siguientes, pero en última instancia, el problema al que me enfrenté fue un permiso con watchman, que se instaló usando homebrew anteriormente. Si observa los mensajes de su terminal mientras trata de usar el emulador y encuentra errores de “Permiso denegado” con respecto al vigilante junto con este mensaje de “No se pudo obtener BatchedBridge” en su emulador, haga lo siguiente:

Vaya a su directorio /Users//Library/LaunchAgents y cambie la configuración de permisos para que su usuario pueda Leer y Escribir. Esto es independientemente de si tienes o no un archivo com.github.facebook.watchman.plist allí.

Descubrí que también necesitaba agregar un

actualización de react-native

para que la aplicación se ejecute correctamente

Intenta limpiar el caché

react-native start –reset-cache

Tengo el mismo problema, pero fue un error estúpido de mi parte …

Desde el estudio de Android , estaba lanzando la secuencia de comandos installDebug/installRelease gradle desde el proyecto de la app lugar del proyecto root .

¡La manera más fácil!

  • Detener el servidor y finalizar la comstackción del proyecto.
  • Abra un terminal ‘Node.js’.
    • Navega a la carpeta con el proyecto ‘reactjsr-nativo’.
    • Escriba ‘reactjsr-inicio nativo’ – Iniciando el servidor nativo de reacción manualmente.
  • Vaya a su Terminal del Editor de Código y escriba ‘react-native run-android.

¡Eres bueno para ir!

Solución: en el directorio “react-native”: después de ejecutar el comando “./gradlew: Ejemplos: UIExplorer: android: app: installDebug” successfully, run commnad ” ./packager/packager.sh ” successfuly. luego haga clic en “UIExplorer App” en el emulador o en el dispositivo