tutorial run react instalar example cli app android react-native

android - run - react native wikipedia



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

Intentando crear un proyecto react-native en Android 4.4.2 me sale esta pantalla de error

y no pude encontrar ninguna manera de resolverlo. Intenté reiniciar el empaquetador, volver a conectar el dispositivo, incluso reinstalar react native y comenzar un nuevo proyecto. En 6.0.0 y versiones posteriores funciona bien.


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

Acabo de recibir este error. Esto es lo que hice para solucionarlo: 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 a sus máquinas de desarrollo está en su red wifi. El puerto suele ser :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.


Compruebe si tiene el siguiente error 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 al mismo adb

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

Y el problema se ha solucionado después de que ambos apuntaran a /Users/sd/Library/Android/sdk/platform-tools/adb (Android SDK)


Dado que está utilizando Android <5.0, no puede utilizar el método adb reverse predeterminado, pero Facebook ha agregado documentación oficial para conectarse al servidor de desarrollo a través de Wi-Fi , que admitirí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 necesitará instalar la aplicación en su dispositivo con un cable USB, pero una vez que lo haya hecho, puede depurar de forma 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 Configuración de desarrollador → Host del servidor de depuración 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). Vuelva al menú Desarrollador y seleccione Volver a cargar JS.


Descubrí que también necesitaba agregar un

actualización nativa de reacción

para que la aplicación se ejecute correctamente.


En un terminal separado , 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


Es demasiado 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 implementará en su dispositivo si está conectado. Cuando abra la aplicación, se mostrará una pantalla roja con error. Luego, ejecute el segundo comando que ejecutará el paquete y creará el paquete de la aplicación para usted.


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

Abrí 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 de API 24.


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

Ejecute adb reverse tcp:8081 tcp:8081 inside /Android/sdk/platform-tools


Intenta limpiar el caché

inicio react-native --reset-cache


La mayoría de nosotros enfrentamos este problema por primera vez, cuando comenzamos a reaccionar al proyecto nativo # 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 :

encuentre la declaración de reemplazo bajo nombre del proyecto (lo que haya 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, incluirá apk y al principio intentará instalar js bundle localmente en su dispositivo. (Tiene éxito)


Me encontré con este problema 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 nuevamente desde mi dispositivo y comenzó a funcionar nuevamente.

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

adb reverse tcp:8081 tcp:8081


Mi camino es:

react-native start

Después de eso en su dispositivo usando:

click to Reload.

Consulte en la consola react-native, obtendrá datos del paquete js.


Mi problema fue que AndroidManifest.xml mi archivo AndroidManifest.xml y AndroidManifest.xml 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 nativa Reaction necesita acceso a Internet (para acceder al empaquetador) Whoops. :)


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 comenzar. Debe ingresar información sobre su máquina de desarrollo en la ''Configuración de desarrollo'' de React Native.

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

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


Para mí, el problema era que no se reconocía ''adb'': verifique this respuesta.

Para solucionar esto, agregue C: / Users / USERNAME / AppData / Local / Android / sdk / platform-tools a las variables de entorno


Para mí, es porque adb no estaba en la PATH . Se encuentra /Users/man/Library/Android/sdk/platform-tools para mí, puede ser otro lugar para usted, pero de todos modos, encuéntrelo y agréguelo a su camino para ver si eso ayuda.


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


Probé muchas de las sugerencias arriba / abajo, pero finalmente, el problema que enfrenté fue un permiso con watchman, que se instaló usando homebrew anteriormente. Si mira los mensajes de su terminal mientras intenta usar el emulador y encuentra errores de ''Permiso denegado'' con respecto al vigilante junto con este mensaje ''No se pudo obtener BatchedBridge "en su emulador, haga lo siguiente:

Vaya al 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í.


Pruebe este comando en la terminal y luego vuelva a cargar. Funciono para mi

adb reverse tcp: 8081 tcp: 8081


Si ninguna de las soluciones funciona para usted, intente esto:

Descubrí que mi carpeta <root>/android/app/build/intermediates/assets/debug estaba vacía y al ejecutar cd android && ./gradlew assembleDebug no estaba creando esos archivos necesarios, que luego son utilizados por el hilo de JavaScript en nuestro nativo de reacción 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 paquete en este directorio <root>/android/app/build/intermediates/assets/debug

Y luego, ejecuté nuevamente cd android && ./gradlew installDebug mi aplicación comenzó a funcionar nuevamente.

Se depurará más y actualizará lo que realmente falla.


Simplemente reinicie su sistema o su paquete completo y el problema puede solucionarse.


También recibí este error, realmente confundido. Porque todas las respuestas no funcionan. Justo después de agregar adb a la ruta.


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, había 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

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

Este mismo mensaje de registro no se emitió en versiones anteriores de react-native-cli, por lo que falla en silencio.

TL, DR: verifique si hay algo ejecutándose en el mismo puerto que el administrador de paquetes (8081 por defecto)


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

Desde el estudio de Android , estaba iniciando el installDebug/installRelease installDebug installDebug/installRelease desde el proyecto de la app lugar del proyecto root .


Terminé teniendo que abrir el puerto que estaba usando (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 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á.


Una posible solución para esto es que probablemente no empaque su aplicación primero, realice los siguientes pasos y luego implemente 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 no existe, créelo)

Luego ejecutar desde la raíz del proyecto

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

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

avíseme si eso soluciona su problema

EDITAR :

Simplemente puede ponerlo en su package.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 rizo equivalente, pero para la mayoría de los casos lo anterior es más robusto


Yo tuve el mismo problema. Cuando creé un proyecto nativo de reacción a través de AwesomeProject create-react-native-app , 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 usted.

Después de un poco de investigación descubrí que es mejor comenzar un nuevo proyecto con react-native init AwesomeProject (con todos los ajustes en react native docs) 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 solucionar el problema con el paquete (--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í.


ver issue :

1.react-native start

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


¡La manera más fácil!

  • Detenga el servidor y finalice la compilación del proyecto.
  • Abra una terminal ''Node.js''.
    • Navegue a la carpeta con el proyecto ''react-native''.
    • Escriba ''react-native start'': inicio del servidor nativo reactivo manualmente.
  • Vaya a su Terminal de editor de código y escriba ''react-native run-android.

¡Eres bueno para ir!