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. Сброс эмулятора сработал.