En una Mac, ejecute el siguiente comando para encontrar la identificación del proceso que está usando el puerto 8081 sudo lsof -i :8081
Luego ejecute lo siguiente para terminar el proceso: kill -9 23583
Agradable agradable agradable muy agradable, gracias.
Jeaf Gilbert
31
Este error se produce porque ya se está ejecutando algún proceso en el puerto 8081. Detenga ese proceso y luego ejecute su comando, ejecutará su código. Para esta primera lista todos los procesos que están usando este puerto escribiendo
lsof -i :8081
Este comando listará el ID de proceso (PID) del proceso y luego matará el proceso del nodo usando
De hecho, esa imagen muestra que su 8081 no está en uso. Si las sugerencias anteriores no han ayudado y su dispositivo móvil está conectado a su computadora a través de USB (y tiene Android 5.0 (Lollipop) o superior), puede probar:
$ adb reconnect
Esto no es necesario en la mayoría de los casos, pero por si acaso, restablezcamos su conexión con su móvil y reiniciemos el servidor adb. Finalmente:
$ adb reverse tcp:8081 tcp:8081
Por lo tanto, siempre que su dispositivo móvil intente acceder a cualquier puerto 8081 en sí mismo, será enrutado al puerto 8081 de su PC.
Mi Metro Bundler estaba atascado y había muchos procesos de nodo en ejecución, pero no tenía ningún otro desarrollo en marcha además de react-native, así que ejecuté:
$ killall -9 node
Metro Bundler se ejecuta a través del nodo en el puerto 8081 de forma predeterminada y, a veces, puede encontrar problemas por los que se atasca (generalmente debido a presionar CTRL+ Sen rápida sucesión con la recarga en caliente activada). Si presiona CTRL+ Cpara finalizar el react-native run-androidproceso, de repente lo pasará mal porque react-native-run-androidse atascará en:
Scanning folders for symlinks in /home/poop/dev/some-app/node_modules (41ms)
Reparar:
$ killall -9 node
$ react-native run-android
Nota: si está desarrollando otras aplicaciones en ese momento, eliminar todos los procesos de nodo puede interrumpirlos o cualquier servicio basado en nodos que tenga en ejecución, así que tenga en cuenta la naturaleza generalizada de killall -9. Si no está ejecutando una aplicación o base de datos basada en nodos o no le importa reiniciarlos manualmente, entonces debería estar listo.
La razón por la que dejo esta respuesta detallada a esta pregunta semi-no relacionada es que la mía es una solución a un problema común semi-relacionado que lamentablemente requiere 2 pasos para solucionarlo, pero afortunadamente solo toma 2 pasos para volver al trabajo.
Si desea eliminar quirúrgicamente exactamente la basura de Metro Bundler en el puerto 8081, siga los pasos de la respuesta de RC_02 , que son:
McAfee está usando este puerto en mi caso. Como se mencionó, la ejecución en diferentes puertos ayuda.
Muthu
1
Esto puede deberse a que McAfee está usando ese puerto. Haciendo simplelsof -i 8081 posible que no muestre la aplicación y es posible que deba sudo.
Hazlo sudo lsof -i 8081y si este comando da una salida, puedes eliminarlo usando
sudo launchctl remove com.mcafee.agent.macmn. Después de esto, inicie el empaquetador nuevamente.
Si esto ha tenido éxito, su dispositivo ha instalado app-debug.apk, abra app-debug y vaya a Dev. Configuración -> Depurar el servidor y puerto del servidor para el dispositivo , escriba la dirección IP de su máquina (generalmente, Preferencia del sistema -> Red ), como en el siguiente ejemplo < dirección IP de su máquina > : 8081 (sin desigualdad)
finalmente, ejecute el siguiente comando
$ react-native start --port=8081
pruebe con otros puertos y verifique que su máquina y su dispositivo sean la misma red.
Respuestas:
Puede ejecutar el empaquetador en otro puerto.
Alternativamente, averigüe qué está usando qué puertos en Windows con netstat.
Netstat le proporciona un PID, que puede utilizar para finalizar el proceso.
fuente
En una Mac, ejecute el siguiente comando para encontrar la identificación del proceso que está usando el puerto
8081
sudo lsof -i :8081
Luego ejecute lo siguiente para terminar el proceso:
kill -9 23583
Así es como se verá
fuente
Este error se produce porque ya se está ejecutando algún proceso en el puerto 8081. Detenga ese proceso y luego ejecute su comando, ejecutará su código. Para esta primera lista todos los procesos que están usando este puerto escribiendo
Este comando listará el ID de proceso (PID) del proceso y luego matará el proceso del nodo usando
Aquí PID es el ID de proceso del proceso de nodo.
fuente
De hecho, esa imagen muestra que su 8081 no está en uso. Si las sugerencias anteriores no han ayudado y su dispositivo móvil está conectado a su computadora a través de USB (y tiene Android 5.0 (Lollipop) o superior), puede probar:
Esto no es necesario en la mayoría de los casos, pero por si acaso, restablezcamos su conexión con su móvil y reiniciemos el servidor adb. Finalmente:
Por lo tanto, siempre que su dispositivo móvil intente acceder a cualquier puerto 8081 en sí mismo, será enrutado al puerto 8081 de su PC.
O uno podría intentar
fuente
Mi Metro Bundler estaba atascado y había muchos procesos de nodo en ejecución, pero no tenía ningún otro desarrollo en marcha además de react-native, así que ejecuté:
Metro Bundler se ejecuta a través del nodo en el puerto 8081 de forma predeterminada y, a veces, puede encontrar problemas por los que se atasca (generalmente debido a presionar CTRL+ Sen rápida sucesión con la recarga en caliente activada). Si presiona CTRL+ Cpara finalizar el
react-native run-android
proceso, de repente lo pasará mal porquereact-native-run-android
se atascará en:Reparar:
Nota: si está desarrollando otras aplicaciones en ese momento, eliminar todos los procesos de nodo puede interrumpirlos o cualquier servicio basado en nodos que tenga en ejecución, así que tenga en cuenta la naturaleza generalizada de
killall -9
. Si no está ejecutando una aplicación o base de datos basada en nodos o no le importa reiniciarlos manualmente, entonces debería estar listo.La razón por la que dejo esta respuesta detallada a esta pregunta semi-no relacionada es que la mía es una solución a un problema común semi-relacionado que lamentablemente requiere 2 pasos para solucionarlo, pero afortunadamente solo toma 2 pasos para volver al trabajo.
Si desea eliminar quirúrgicamente exactamente la basura de Metro Bundler en el puerto 8081, siga los pasos de la respuesta de RC_02 , que son:
(donde 23583 es el ID del proceso)
fuente
Toma la terminal y escribe
Obtendrá un ID de proceso que está usando el puerto 8081 Ahora finalice el proceso
fuente
Debe eliminar todos los procesos que se ejecutan en el puerto 8081
kill -9 $(lsof -i:8081)
fuente
Verifique si ya hay un servidor de nodo ejecutándose en su máquina y luego ciérrelo.
fuente
Intente ejecutar en otro puerto como 3131. Ejecute el comando:
fuente
Esto puede deberse a que McAfee está usando ese puerto. Haciendo simple
lsof -i 8081
posible que no muestre la aplicación y es posible que deba sudo.Hazlo
sudo lsof -i 8081
y si este comando da una salida, puedes eliminarlo usandosudo launchctl remove com.mcafee.agent.macmn
. Después de esto, inicie el empaquetador nuevamente.fuente
en mi caso, Internet en el emulador no funciona porque no hay señal wifi en el emulador. Restablecer el emulador ha funcionado.
fuente
Para solucionar este problema, el proceso que he mencionado a continuación.
Cancele el proceso actual de "react-native run-android" con CTRL + C o CMD + C
Cierre la línea de comando de la ventana de Metro bundler (terminal) que se abrió automáticamente.
Ejecute el comando nuevamente en la terminal, "react-native run-android
fuente
En primer lugar, en su dispositivo, vaya a Dev. Opción -> ADB sobre la red después de hacerlo:
(o run-ios, por cierto)
Si esto ha tenido éxito, su dispositivo ha instalado app-debug.apk, abra app-debug y vaya a Dev. Configuración -> Depurar el servidor y puerto del servidor para el dispositivo , escriba la dirección IP de su máquina (generalmente, Preferencia del sistema -> Red ), como en el siguiente ejemplo < dirección IP de su máquina > : 8081 (sin desigualdad)
finalmente, ejecute el siguiente comando
pruebe con otros puertos y verifique que su máquina y su dispositivo sean la misma red.
fuente