Na komputerze Mac uruchom następujące polecenie, aby znaleźć identyfikator procesu, który używa portu. 8081 sudo lsof -i :8081
Następnie wykonaj następujące czynności, aby zakończyć proces: kill -9 23583
Ten błąd nadchodzi, ponieważ jakiś proces jest już uruchomiony na porcie 8081. Zatrzymaj ten proces, a następnie uruchom polecenie, uruchomi twój kod. W pierwszej kolejności wypisz wszystkie procesy, które używają tego portu, wpisując
lsof -i :8081
To polecenie wyświetli identyfikator procesu (PID) procesu, a następnie zabije proces węzła za pomocą
To zdjęcie rzeczywiście pokazuje, że 8081 nie jest używany. Jeśli powyższe sugestie nie pomogły, a Twoje urządzenie mobilne jest podłączone do komputera przez USB (a masz system Android 5.0 (Lollipop) lub nowszy), możesz spróbować:
$ adb reconnect
W większości przypadków nie jest to konieczne, ale na wszelki wypadek zresetujmy połączenie z telefonem komórkowym i zrestartujmy serwer adb. Wreszcie:
$ adb reverse tcp:8081 tcp:8081
Tak więc za każdym razem, gdy urządzenie mobilne spróbuje uzyskać dostęp do dowolnego portu 8081, zostanie przekierowane do portu 8081 na komputerze.
Mój Metro Bundler utknął i było uruchomionych wiele procesów węzłów, ale nie pracowałem nad żadnym innym rozwojem poza React-Native, więc uruchomiłem:
$ killall -9 node
Metro Bundler domyślnie działa przez węzeł na porcie 8081 i czasami może napotkać problemy, przez które utknie (zwykle z powodu szybkiego naciśnięcia CTRL+ Sz włączonym ponownym ładowaniem). Jeśli naciśniesz CTRL+, Caby zabić react-native run-androidproces, nagle będziesz mieć zły czas, ponieważ react-native-run-androidutkniesz na:
Scanning folders for symlinks in /home/poop/dev/some-app/node_modules (41ms)
Naprawić:
$ killall -9 node
$ react-native run-android
Uwaga: jeśli w tym czasie tworzysz inne aplikacje, zabicie wszystkich procesów węzłów może je przerwać lub wszelkie uruchomione usługi oparte na węzłach, więc pamiętaj o rozległym charakterze killall -9. Jeśli nie korzystasz z bazy danych lub aplikacji opartej na węzłach lub nie masz nic przeciwko ręcznemu ich ponownemu uruchomieniu, powinieneś być gotowy.
Powodem, dla którego zostawiam tę szczegółową odpowiedź na to częściowo niepowiązane pytanie, jest to, że moje jest rozwiązaniem powszechnego, częściowo związanego problemu, który niestety wymaga 2 kroków, aby naprawić, ale na szczęście tylko 2 kroki pozwalają wrócić do pracy.
Jeśli chcesz chirurgicznie usunąć dokładnie śmieci Metro Bundler na porcie 8081, wykonaj kroki w odpowiedzi z RC_02 , które są:
McAfee używa tego portu w moim przypadku. Jak wspomniano, praca w innym porcie pomaga.
Muthu
1
Może to być spowodowane używaniem tego portu przez firmę McAfee. Proste wykonanie lsof -i 8081może nie pokazać aplikacji i być może będziesz musiał ją sudo.
Zrób, sudo lsof -i 8081a jeśli to polecenie daje wynik, możesz je zabić za pomocą
sudo launchctl remove com.mcafee.agent.macmn. Po tym ponownie uruchom program pakujący.
jeśli to się powiodło, na Twoim urządzeniu zainstalowano app-debug.apk, otwórz app-debug i przejdź do Dev. Ustawienia -> Host serwera debugowania i port dla urządzenia , wpisz adres IP twojego komputera (ogólnie Preferencje systemowe -> Sieć ), jak w poniższym przykładzie < adres IP twojego komputera > : 8081 (bez nierówności)
na koniec wykonaj poniższe polecenie
$ react-native start --port=8081
wypróbuj inne porty i sprawdź, czy komputer i urządzenie są w tej samej sieci.
Odpowiedzi:
Możesz uruchomić program pakujący na innym porcie.
Możesz też dowiedzieć się, jakie porty są używane w systemie Windows za pomocą narzędzia netstat.
Netstat podaje PID, którego można użyć do zabicia procesu.
źródło
Na komputerze Mac uruchom następujące polecenie, aby znaleźć identyfikator procesu, który używa portu.
8081
sudo lsof -i :8081
Następnie wykonaj następujące czynności, aby zakończyć proces:
kill -9 23583
Oto jak to będzie wyglądało
źródło
Ten błąd nadchodzi, ponieważ jakiś proces jest już uruchomiony na porcie 8081. Zatrzymaj ten proces, a następnie uruchom polecenie, uruchomi twój kod. W pierwszej kolejności wypisz wszystkie procesy, które używają tego portu, wpisując
To polecenie wyświetli identyfikator procesu (PID) procesu, a następnie zabije proces węzła za pomocą
Tutaj PID jest identyfikatorem procesu węzła.
źródło
To zdjęcie rzeczywiście pokazuje, że 8081 nie jest używany. Jeśli powyższe sugestie nie pomogły, a Twoje urządzenie mobilne jest podłączone do komputera przez USB (a masz system Android 5.0 (Lollipop) lub nowszy), możesz spróbować:
W większości przypadków nie jest to konieczne, ale na wszelki wypadek zresetujmy połączenie z telefonem komórkowym i zrestartujmy serwer adb. Wreszcie:
Tak więc za każdym razem, gdy urządzenie mobilne spróbuje uzyskać dostęp do dowolnego portu 8081, zostanie przekierowane do portu 8081 na komputerze.
Albo można spróbować
źródło
Mój Metro Bundler utknął i było uruchomionych wiele procesów węzłów, ale nie pracowałem nad żadnym innym rozwojem poza React-Native, więc uruchomiłem:
Metro Bundler domyślnie działa przez węzeł na porcie 8081 i czasami może napotkać problemy, przez które utknie (zwykle z powodu szybkiego naciśnięcia CTRL+ Sz włączonym ponownym ładowaniem). Jeśli naciśniesz CTRL+, Caby zabić
react-native run-android
proces, nagle będziesz mieć zły czas, ponieważreact-native-run-android
utkniesz na:Naprawić:
Uwaga: jeśli w tym czasie tworzysz inne aplikacje, zabicie wszystkich procesów węzłów może je przerwać lub wszelkie uruchomione usługi oparte na węzłach, więc pamiętaj o rozległym charakterze
killall -9
. Jeśli nie korzystasz z bazy danych lub aplikacji opartej na węzłach lub nie masz nic przeciwko ręcznemu ich ponownemu uruchomieniu, powinieneś być gotowy.Powodem, dla którego zostawiam tę szczegółową odpowiedź na to częściowo niepowiązane pytanie, jest to, że moje jest rozwiązaniem powszechnego, częściowo związanego problemu, który niestety wymaga 2 kroków, aby naprawić, ale na szczęście tylko 2 kroki pozwalają wrócić do pracy.
Jeśli chcesz chirurgicznie usunąć dokładnie śmieci Metro Bundler na porcie 8081, wykonaj kroki w odpowiedzi z RC_02 , które są:
(gdzie 23583 to identyfikator procesu)
źródło
Weź terminal i wpisz
Otrzymasz identyfikator procesu, który używa portu 8081. Teraz zakończ proces
źródło
Powinieneś zabić wszystkie procesy działające na porcie 8081 przez
kill -9 $(lsof -i:8081)
źródło
Sprawdź, czy na twoim komputerze jest już uruchomiony serwer Node, a następnie zamknij go.
źródło
Spróbuj uruchomić na innym porcie, np. 3131. Uruchom polecenie:
źródło
Może to być spowodowane używaniem tego portu przez firmę McAfee. Proste wykonanie
lsof -i 8081
może nie pokazać aplikacji i być może będziesz musiał ją sudo.Zrób,
sudo lsof -i 8081
a jeśli to polecenie daje wynik, możesz je zabić za pomocąsudo launchctl remove com.mcafee.agent.macmn
. Po tym ponownie uruchom program pakujący.źródło
w moim przypadku internet na emulatorze nie działa, ponieważ na emulatorze nie ma sygnału wifi. Resetowanie emulatora zadziałało.
źródło
Aby rozwiązać ten problem, proces, o którym wspomniałem poniżej.
Anuluj bieżący proces „react-native run-android” za pomocą CTRL + C lub CMD + C
Zamknij wiersz poleceń okna programu Metro bundler (terminal), który otworzył się automatycznie.
Ponownie uruchom polecenie na terminalu, „react-native run-android
źródło
Przede wszystkim w swoim urządzeniu przejdź do Dev. Opcja -> ADB przez sieć po wykonaniu tej czynności:
(lub przy okazji run-ios)
jeśli to się powiodło, na Twoim urządzeniu zainstalowano app-debug.apk, otwórz app-debug i przejdź do Dev. Ustawienia -> Host serwera debugowania i port dla urządzenia , wpisz adres IP twojego komputera (ogólnie Preferencje systemowe -> Sieć ), jak w poniższym przykładzie < adres IP twojego komputera > : 8081 (bez nierówności)
na koniec wykonaj poniższe polecenie
wypróbuj inne porty i sprawdź, czy komputer i urządzenie są w tej samej sieci.
źródło