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

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

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

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

Ответ 1

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

$ react-native start --port=8088

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

$ netstat -a -b -o

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

$ taskkill /pid 1234

Ответ 2

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

Вот как это будет выглядеть введите описание изображения здесь

Ответ 3

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

lsof -i :8081  

Эта команда будет отображать идентификатор процесса (PID) процесса и затем убить процесс node, используя

kill -9 <PID>  

Здесь PID - это идентификатор процесса процесса node.

Ответ 4

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

$ adb reconnect

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

$ adb reverse tcp:8081 tcp:8081

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

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

$ killall node

Ответ 5

Возьми терминал и набери

fuser 8081/tcp

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

kill <pid>

Ответ 6

Ubuntu/Unix && MacOS

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

$ 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)

Fix:

$ killall -9 node

$ react-native run-android

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

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

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

$ sudo lsof -i :8081

$ kill -9 23583

(где 23583 - идентификатор процесса)

Ответ 7

Убедитесь, что на вашем компьютере уже запущен Node-сервер, а затем закройте его.

Ответ 8

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

react-native run-android --port=3131

Ответ 9

Вы должны уничтожить все процессы, работающие на порте 8081, с помощью kill -9 $(lsof -i:8081)

Ответ 10

Чтобы решить эту проблему, процесс, который я упомянул ниже.

Пожалуйста, отмените текущий процесс "реакции-родной Run-Android" CTRL + C или CMD + C

Закройте окно командной строки окна терминала (терминала), которое открывается автоматически.

Запустите команду еще раз на терминале "Реакция-нативный запуск-Android"

Ответ 11

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

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

Ответ 12

Прежде всего, в вашем устройстве зайдите в Dev. Опция → ADB через сеть после того, как сделаем это:

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

(или run-ios, кстати)

если это успешно, ваше устройство установило app-debug.apk, откройте app-debug и перейдите к Dev. Настройки → Отладка хоста и порта сервера для устройства, введите IP-адрес вашего компьютера (обычно Системные настройки → Сеть), как показано в примере ниже < IP-адрес вашего компьютера > : 8081 (без неравенства)

наконец, выполните команду ниже

$ react-native start --port=8081

попробуйте другие порты и убедитесь, что ваше устройство и ваше устройство находятся в одной сети.

Ответ 13

в моем случае интернет на эмуляторе не работает, так как на эмуляторе нет сигнала Wi-Fi. Сброс эмулятора сработал.