wake-up-neo.com

Reaktiver nativer ERROR Packager kann Port 8081 nicht überwachen

Wenn ich react-native start gebe, wird Packager can't listen on port 8081 angezeigt. 

Ich weiß, das Problem betrifft einige Software, die meinen Port 8081 verwendet.

Ich verwende Resource Monitor, um den Port zu sehen, aber ich kann 8081 nicht herausfinden. Danke im Voraus.  enter image description here

60
徐博俊

Sie können den Packager an einem anderen Port ausführen.

$ react-native start --port=8088

Alternativ können Sie herausfinden, welche Ports unter Windows mit netstat verwendet werden.

$ netstat -a -b -o

Netstat gibt Ihnen eine PID, mit der Sie den Prozess beenden können.

$ taskkill /pid 1234
87
Viktor Seč

Führen Sie auf einem Mac den folgenden Befehl aus, um die ID des Prozesses zu ermitteln, der Port 8081 verwendet.
Sudo lsof -i :8081
Führen Sie dann Folgendes aus, um den Prozess zu beenden:
kill -9 23583

So wird es aussehen  enter image description here

105
RC_02

Dieser Fehler tritt auf, da bereits ein Prozess am 8081-Port ausgeführt wird. Stoppen Sie diesen Prozess und führen Sie dann den Befehl aus. Der Code wird ausgeführt. Für diese erste Liste alle Prozesse, die diesen Port verwenden, indem Sie eingeben 

lsof -i :8081  

Dieser Befehl listet die Prozess-ID (PID) des Prozesses auf und beendet dann den Knotenprozess mit 

kill -9 <PID>  

Hier ist PID die Prozess-ID des Knotenprozesses.

30
Pulkit Aggarwal

Dieses Bild zeigt tatsächlich, dass Ihr 8081 nicht verwendet wird. Wenn die oben genannten Vorschläge nicht geholfen haben und Ihr Mobilgerät über USB mit Ihrem Computer verbunden ist (und Sie über Android 5.0 (Lollipop) oder höher verfügen), können Sie Folgendes versuchen:

$ adb reconnect

In den meisten Fällen ist dies nicht erforderlich, aber für den Fall, dass wir Ihre Verbindung mit Ihrem Mobiltelefon zurücksetzen und den ADB-Server neu starten. Endlich:

$ adb reverse tcp:8081 tcp:8081

Immer wenn Ihr Mobilgerät versucht, auf einen Port 8081 auf sich selbst zuzugreifen, wird es an den 8081-Port Ihres PCs weitergeleitet.

Oder könnte man es versuchen

$ killall node
15

Nimm das Terminal und tippe

fuser 8081/tcp

Sie erhalten eine Prozess-ID, die den Port 8081 verwendet 

kill <pid>
6
FortuneCookie

buntu/Unix && MacOS

Mein Metro Bundler steckte fest und es liefen viele Knotenprozesse, aber ich hatte keine andere Entwicklung als die reaktionsspezifische, also lief ich:

$ killall -9 node

Der Metro Bundler wird standardmäßig über den Knoten auf Port 8081 ausgeführt, und es kann zu Problemen kommen, bei denen er manchmal hängen bleibt (normalerweise aufgrund von Drücken von CTRL+S in schneller Folge mit heißem Nachladen auf). Wenn Sie drücken CTRL+C Um den react-native run-Android-Prozess abzubrechen, haben Sie plötzlich eine schlechte Zeit, weil react-native-run-Android festsitzt:

Scanning folders for symlinks in /home/poop/dev/some-app/node_modules (41ms)

Fix:

$ killall -9 node

$ react-native run-Android

Hinweis: Wenn Sie gerade andere Apps entwickeln, werden diese oder alle von Ihnen ausgeführten knotenbasierten Dienste möglicherweise unterbrochen, wenn Sie alle Knotenprozesse beenden. Beachten Sie daher die umfassende Natur von killall -9. Wenn Sie keine knotenbasierte Datenbank oder App ausführen oder es Ihnen nichts ausmacht, sie manuell neu zu starten, sollten Sie einsatzbereit sein.

Der Grund, warum ich diese ausführliche Antwort auf diese nicht zusammenhängende Frage hinterlasse, ist, dass meine eine Lösung für ein allgemeines, nicht zusammenhängendes Problem ist, für dessen Behebung leider zwei Schritte erforderlich sind.

Wenn Sie den Metro Bundler-Müll auf Port 8081 chirurgisch entfernen möchten, führen Sie die folgenden Schritte in der Antwort von RC_02 aus:

$ Sudo lsof -i :8081

$ kill -9 23583

(wobei 23583 die Prozess-ID ist)

3
agm1984

Überprüfen Sie, ob auf Ihrem Computer bereits ein Knotenserver ausgeführt wird, und schließen Sie ihn dann.

2
Hitesh Sahu

Sie sollten alle auf Port 8081 ausgeführten Prozesse mit kill -9 $(lsof -i:8081) beenden.

1
Nagibaba

Versuchen Sie, in einem anderen Port wie 3131 auszuführen. Führen Sie den Befehl aus:

react-native run-Android --port=3131
1
alvaropaco

Um dieses Problem zu beheben, habe ich den folgenden Prozess erwähnt.

Bitte brechen Sie den aktuellen Prozess von "Reactative Run-Android" durch STRG + C oder CMD + C ab

Schließen Sie die automatisch geöffnete Befehlszeile des Metro Bundler (Terminal) -Fensters.

Führen Sie den Befehl erneut auf dem Terminal aus, "React-native run-Android "

0
Nirav

Möglicherweise liegt dies daran, dass McAfee diesen Port verwendet. Wenn Sie einfach lsof -i 8081 ausführen, wird die Anwendung möglicherweise nicht angezeigt, und Sie müssen sie möglicherweise Sudo ausführen.

Geben Sie Sudo lsof -i 8081 ein. Wenn dieser Befehl eine Ausgabe liefert, können Sie ihn mit Sudo launchctl remove com.McAfee.agent.macmn abbrechen. Starten Sie danach den Packager erneut.

0
Sankalp

in meinem Fall ist das Internet im Emulator ausgefallen, da im Emulator kein WLAN-Signal vorhanden ist. Das Zurücksetzen des Emulators hat funktioniert.

0
Rohit Mandiwal

Gehen Sie in Ihrem Gerät zunächst nach Dev. Option -> ADB über Netzwerk Nachdem Sie es getan haben:

$ adb connect <your device adb network>
$ react-native run-Android 

(oder Run-Ios übrigens)

wenn dies erfolgreich durchgeführt wurde, hat Ihr Gerät app-debug.apk installiert Öffnen Sie app-debug und gehen Sie zu Dev. Einstellungen -> Debug-Server Host & Port für Gerät , Geben Sie die IP-Adresse Ihres Computers ein (im Allgemeinen Systemeinstellung -> Netzwerk ), wie im folgenden Beispiel < die IP-Adresse Ihres Computers >: 8081 (ohne Ungleichheit)

führen Sie schließlich den folgenden Befehl aus

$ react-native start --port=8081

versuchen Sie es mit einem anderen Anschluss und stellen Sie sicher, dass Ihr Computer und Ihr Gerät dasselbe Netzwerk haben.

0
Hermanyo H