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.
- reiniciar el genymotion
-
ejecutar
react-native run-android
- 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í.
-
react-native run-android
. -
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í.
¡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!