react-native run-android
el comando termina dejando un mensaje en el simulador de Android. El mensaje es el siguiente:
No se puede cargar la secuencia de comandos. Asegúrese de que está ejecutando un servidor Metro o de que su paquete 'index.android.bundle' está empaquetado correctamente para su lanzamiento.
¿Qué estoy haciendo mal?
reactjs
react-native
react-native-android
react-native-cli
metro-bundler
Belle Solutions
fuente
fuente
Respuestas:
Aún no has comenzado el paquete. Ejecute
npm start
oreact-native start
en el directorio raíz de su proyecto antesreact-native run-android
.fuente
Estos pasos realmente me ayudan:
Paso 1: crea un directorio en android / app / src / main / assets
Comando de Linux :
mkdir android/app/src/main/assets
Paso 2: cambie el nombre
index.android.js
(en el directorio raíz) aindex.js
( Quizás haya unindex.js
archivo en cuyo caso no necesita cambiarle el nombre ) y luego ejecute el siguiente comando:Paso 3: crea tu APK:
react-native run-android
Utilice index.js en la última versión.
Disfruta :)
fuente
index.js
archivo en el directorio raíz, en cuyo caso no necesita cambiarle el nombrePara mí, este error fue causado por una actualización de react-native
Si revisa la diferencia de actualización, debe crear un manifiesto de depuración
android/app/src/debug/AndroidManifest.xml
Consulte para obtener más información: https://stackoverflow.com/a/50834600/1713216
https://react-native-community.github.io/upgrade-helper/
fuente
android:usesCleartextTraffic="true"
en la vista principalAndroidManifest.xml
si eso funciona?Primero realice los pasos 4 y 5, luego puede ejecutar su proyecto. Si no obtiene el resultado (con los pasos 4 y 5), realice los siguientes pasos
1- Intenta degradar tu versión de Nodo (la versión actual es
12.13.1
)2- Agregue la ruta del módulo npm (
C:\Users\your user name\AppData\Roaming\npm
) a las variables del sistema en lugar de las variables de usuario3- Instalar reaccionar nativo globalmente mediante el comando
4- Vaya a la raíz del directorio de su proyecto y ejecute el siguiente comando:
5- Abre otra terminal en la raíz de tu proyecto y ejecuta el siguiente comando:
EDITAR:
¿Estás usando Genymotion? En caso afirmativo, realice el siguiente paso:
Después del paso anterior, ¿obtiene el siguiente error?
Abre tu genymotion y ve a:
genymotion menu -> Settings -> ADB -> Luego seleccione use custom android sdk tools(haga clic en Examinar para encontrar la ubicación de SDK)
Finalmente, ejecute su proyecto nuevamente.
fuente
Puedes probar lo siguiente:
Agregue esta línea en su AndroidManifest.xml
fuente
Un problema similar sucedió conmigo.
Aparentemente, Mcafee bloquea el puerto 8081. Me tomó horas resolver esto.
Intenta correr:
Cuando la aplicación aparezca con un error en el emulador, ingrese a la configuración de desarrollo ( Ctrl+ M).
Cambie el "Host del servidor de depuración y el puerto del dispositivo" a "localhost: 1234".
Cierre la aplicación e iníciela desde el cajón de aplicaciones.
fuente
solo agregue tres splash en: node_modules \ metro-config \ src \ defaults \ blacklist.js
reemplace esta parte:
fuente
si tiene todo configurado correctamente, intente esto:
adb reverse tcp: 8081 tcp: 8081
¿Por qué? "Cuando se ejecuta el empaquetador RN, hay un servidor web activo accesible en su navegador en 127.0.0.1:8081. Es desde este servidor que el paquete JS para su aplicación se sirve y actualiza a medida que realiza cambios. Sin el proxy inverso, su teléfono no podría conectarse a esa dirección ".
todos los créditos a Swingline0
fuente
[Respuesta rápida]
Después de intentar resolver este problema en mi espacio de trabajo, encontré una solución.
Este error se debe a que hay un problema con Metro al usar algunas combinaciones de NPM y la versión Node.
Tienes 2 alternativas:
Alternativa 2: vaya a este archivo
\node_modules\metro-config\src\defaults\blacklist.js
y cambie este código:y cambia a esto:
fuente
Esto funcionó para mí después de intentarlo de varias maneras.
En el archivo
node_modules\metro-config\src\defaults\blacklist.js
Reemplazar:
con :
espero que esto ayude.
fuente
metro-config
usó \ para rutas en lugar de /, que esta respuesta sugiere modificar. No hagas esto . La modificación de los paquetes npm significa que todo su equipo tiene que hacer esto en su máquina, en CI, en la puesta en escena, en la producción y cada vez que metro-config lanza una actualización. Un mejor enfoque es bifurcar la configuración de metro en GitHub, comprometer una solución, presionar y enviar un RP para solucionarlo para todos.A partir de Android 9.0 (API nivel 28), la compatibilidad con texto sin formato está deshabilitada de forma predeterminada.
Esto es lo que debe hacer para deshacerse de este problema si ejecuta correctamente los comandos de ejecución normales
Y modifique su archivo de manifiesto de Android de esta manera.
fuente
Después de horas buscando una respuesta. La solución fue hacer un nodo de degradación a la versión 12.4.
En mi caso, me doy cuenta de que el error solo ocurre en la versión reaccionar nativa 0.60 con la versión 12.6 del nodo.
fuente
Mi solución a esto es la siguiente:
Inicie el servidor Metro
Inicia Android
Si ve errores que dicen "el puerto 8081 ya está en uso", puede eliminar ese proceso y volver a ejecutar
Consulte la página Reaccionar solución de problemas nativa .
fuente
Si está en Linux, abra el terminal desde el directorio raíz de la aplicación y ejecute
luego abra otra ventana de terminal y ejecute:
fuente
Solo quiero agregar una posibilidad no obvia no cubierta aquí. Estoy usando @ react-native-community / netinfo para detectar cambios en la red, principalmente el estado de la red. Para probar el estado apagado de la red, el interruptor WIFI (en el emulador) debe estar apagado. Esto también corta efectivamente el puente entre el emulador y el entorno de depuración. No había vuelto a habilitar WIFI después de mis pruebas ya que estaba lejos de la computadora y rápidamente lo olvidé cuando regresé.
Existe la posibilidad de que este también sea el caso de otra persona y valga la pena comprobarlo antes de tomar otras medidas drásticas.
fuente
Estaba teniendo el mismo problema, el problema para mí era que adb no estaba en la ruta correcta del entorno, el error te dice que tienes un puerto de metro, mientras estás en el adb, los puertos se eliminan y se reinician.
Añadir variable de entorno (ADB)
Ejecute Android Build nuevamente
O
fuente
También me he enfrentado a este problema. Resolví este siguiente paso.
Compruebe la ruta de sdk de Android en Environment Veritable.
Agregar
ANDROID_HOME = C:\Users\user_name\AppData\Local\Android\Sdk
en variable de sistemay
C:\Users\user_name\AppData\Local\Android\Sdk\platform-tools
ruta en variable de sistemareemplace sharedBlacklist como el siguiente segmento de código,
en node_modules / metro-config / src / default / blacklist.js
Luego ejecute npx react-native run-android --port 9001
Feliz codificación ..!
fuente
Experimenté esto solo porque mi Wifi se apagó por error en mi emulador. Lo volví a encender y comenzó a funcionar bien. Espero que sea útil para alguien
fuente
La solución que funcionó para mí es la siguiente:
fuente
actualizar esta parte en la lista negra de metro
fuente
Me encontré con el mismo problema al seguir el tutorial React Native (desarrollo en Linux y orientación a Android).
Este problema me ayudó a resolver el problema en los siguientes pasos. Ejecute los siguientes comandos en la siguiente secuencia:
mkdir android/app/src/main/assets
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
react-native run-android
Puede automatizar los pasos anteriores colocándolos en
scripts
parte depackage.json
esta manera:Entonces puede ejecutar
npm run android-linux
desde su línea de comando cada vez.fuente
Por defecto, un pequeño servidor JavaScript llamado "Metro Server" se ejecuta en el puerto 8081.
Debe hacer que este puerto esté disponible para que este servidor se inicie. Entonces,
¿Cómo liberar el puerto?
http://tenbull.blogspot.com/2019/05/how-to-kill-process-currently-using.html
¿Cómo matar el proceso que actualmente usa un puerto en localhost en Windows?
y lo más importante, actualicé mi versión de nodo de 8.xa 10.x (más reciente), como lo sugiere facebook @ https://facebook.github.io/react-native/docs/getting-started
fuente
Para mí, este problema comenzó con la actualización de react-native. La actualización fue necesaria para agregar soporte de 64 bits.
Además, un cambio importante que hice para la actualización fue en ../android/build/build.gradle
Tuve que cambiar la targetSdkVersion de 27 a 28 después de la advertencia cuando intenté subir la compilación (.apk) a la consola goole play. Poco me di cuenta de que esta fue la causa raíz del error anterior para mí. Las respuestas inmediatas de @tom y @tinmarfrutos tenían sentido absoluto.
Resolví el problema agregando android: usesCleartextTraffic = "true" a mi android / app / src / debug / AndroidManifest.xml
fuente
En mi caso, configuré un proxy en mi emulador. Funciona de nuevo a la normalidad después de eliminar ese proxy.
fuente
la posibilidad de este error también es la ruta incorrecta, verifique una vez
fuente
IMPORTANTE: es posible que tenga muchos dispositivos virtuales en su entorno. Asegúrese de que si está cambiando AVD, repita la configuración nuevamente.
INFORMACIÓN DE DEPURACIÓN
En caso de que experimente el error anterior, primero debe verificar qué se está ejecutando en el puerto 8081
La forma más rápida de encontrar eso es usando el siguiente comando en la terminal
si eso te muestra algo significa que el puerto está bloqueado. si es posible, desbloquee ese puerto.
De lo contrario, necesitaría cambiar el puerto. El proceso para hacerlo ya ha sido mencionado en el comentario anterior de Naveen Kumar
Asegúrese de que 9001 tampoco se usa :)
fuente
Pruebe estos pasos si ha probado todo lo mencionado en las soluciones anteriores:
fuente
Intenta lo siguiente.
Tal vez después de los pasos anteriores tienes ejecuciones npm start - --reset-cache
Yo trabajo, espero que te ayude.
fuente
Si está ejecutando en el sistema operativo Linux, puede haber un caso en el que su servidor remoto npm no se esté ejecutando. Abra otra terminal (con el directorio del proyecto) y ejecute este comando sudo npm start o sudo react-native start antes de hacer sudo react-native run-android
fuente
El mensaje de error en el emulador es un poco engañoso. En mi caso, usé un Macbook. Necesitaba cambiar los permisos en Android / Gradlew ejecutando
$ chmod 755 ./gradlew
, y luego la aplicación podría construirse e implementarse en el emulador de Android.fuente