React native ERROR Packager не может прослушивать порт 8081



когда я команду react-native start Это показывает Packager can't listen on port 8081.



Я знаю, что проблема связана с некоторым программным обеспечением, использующим мой порт 8081 .



Я использую Монитор ресурсов , чтобы увидеть порт , но я не могу узнать 8081 , нет 8081, кто-то может научить меня, как его найти ? Спасибо заранее.
enter image description here

667   10  

10 ответов:

вы можете запустить упаковщик на другой порт.

$ react-native start --port=8088

кроме того, узнайте, что использует какие порты в Windows с помощью netstat.

$ netstat -a -b -o

Netstat дает вам PID, который вы можете использовать, чтобы убить процесс.

$ taskkill /pid 1234

на mac, выполните следующую команду, чтобы найти идентификатор процесса, который использует порт 8081
sudo lsof -i :8081
Затем выполните следующие действия, чтобы завершить процесс:
kill -9 23583

вот как это будет выглядеть enter image description here

эта ошибка возникает потому, что какой-то процесс уже запущен на порту 8081. Остановите этот процесс, а затем запустите свою команду, она будет запускать ваш код. Для этого первого списка все процессы, которые используют этот порт, набрав

lsof -i :8081  

эта команда выведет идентификатор процесса (PID) процесса, а затем убьет процесс узла с помощью

kill -9 <PID>  

здесь PID-это идентификатор процесса процесса узла.

эта картина действительно показывает, что ваш 8081 не используется. Если предложения выше не помогли, и ваше мобильное устройство подключено к компьютеру через usb (и у вас есть Android 5.0 (Lollipop) или выше), вы можете попробовать:

$ adb reconnect

это не обязательно в большинстве случаев, но на всякий случай, давайте сбросим ваше соединение с вашим мобильным телефоном и перезагрузим сервер adb. Наконец:

$ adb reverse tcp:8081 tcp:8081

таким образом, всякий раз, когда ваше мобильное устройство пытается получить доступ к любому порту 8081 на себе это будет перенаправляется на порт 8081 на вашем ПК.

или можно попробовать

$ killall node

возьмите терминал и введите

fuser 8081/tcp

вы получите идентификатор процесса, который использует порт 8081 Теперь убейте процесс

kill <pid>

проверьте, если на вашем компьютере уже запущен сервер узлов, а затем закройте его.

попробуйте запустить в другом порту, как 3131. Выполните команду:

react-native run-android --port=3131

для того чтобы исправить эту проблему, процесс, которые я упомянул ниже.

пожалуйста, отмените текущий процесс "react-native run-android" с помощью CTRL + C или CMD + C

закрыть окно metro bundler(terminal), которое открывается автоматически.

снова запустите команду на терминале: "react-native run-android

это может быть связано с тем, что McAfee использует этот порт. Делать просто lsof -i 8081 может не показать приложение, и вы, возможно, придется sudo его.

Do sudo lsof -i 8081 и если эта команда дает выход вы можете убить его с помощью sudo launchctl remove com.mcafee.agent.macmn. После этого снова запустите упаковщик.

Ubuntu / Unix

мой Metro Bundler застрял, и было много запущенных процессов узла, но у меня не было никакой другой разработки, кроме react-native, поэтому я побежал:

$ killall -9 node

Metro Bundler работает через узел на порту 8081 по умолчанию, и он может иногда сталкиваться с проблемами, из-за которых он застревает (обычно из-за нажатия CTRL+S в быстрой последовательности с горячей перезагрузкой). Если вы нажмете CTRL+C убить react-native run-android процесс, вы вдруг будете иметь плохое время, потому что react-native-run-android застрянет на :

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

исправления:

$ killall -9 node

$ react-native run-android

Примечание: если вы разрабатываете другие приложения в то время, убийство всех процессов узла может прервать их или любые службы на основе узлов, которые вы используете, поэтому помните о широком характере killall -9. Если вы не используете базу данных или приложение на основе узлов или нет ум вручную перезапустить их, то вы должны быть хорошо идти.

причина, по которой я оставляю этот подробный ответ на этот полу-несвязанный вопрос, заключается в том, что мой-это решение общей полу-связанной проблемы, которая, к сожалению, требует 2 шагов для исправления, но, к счастью, только 2 шага возвращаются к работе.

если вы хотите хирургически удалить именно мусор Metro Bundler на порту 8081, выполните шаги в ответе от RC_02, из которых:

$ sudo lsof -i :8081

$ kill -9 23583

Comments

    Ничего не найдено.