Ошибка ответа сетевого ответа (create-react-native-app) (expo)

Я пытаюсь запустить приложение create-реагировать на родной на приложение expo в Android.

Во-первых, я создал проект, написав команду

тест create-реакции-native-приложения

потом я казнил

начало вечера

затем отсканировал код qr из приложения expo.

Но после сканирования QR-кода я получаю следующую ошибку:

Uncaught Error: Java.net,sockettimeoutException: failed to connect to after 10000ms

enter image description here

Github Issue:

https://github.com/react-community/create-react-native-app/issues/144#issuecomment-296631692

Ответ 1

Это связано с тем, что не открыт порт с вашего устройства.

В Ubuntu Run In terminal

sudo ufw status verbose Чтобы открыть открытый порт, если вы не можете открыть порт 19000, вам нужно открыть порт, используя

sudo ufw allow 19000/tcp

а затем снова запустите

sudo ufw allow 19001/tcp

чтобы обслуживать http для ответа native, я разрешаю эту проблему в моем ubuntu, используя этот метод. Надеюсь, это поможет вам.

Чтобы открыть порт в брандмауэре Windows для доступа к TCP В меню Начать нажмите Run, введите WF.msc и нажмите OK.

В Брандмауэр Windows с расширенной безопасностью, в левой панели щелкните правой кнопкой мыши Входящие правила, а затем нажмите New Rule в панели действий.

В диалоговом окне Тип правила выберите Порт, а затем нажмите Далее.

В диалоговом окне Протокол и порты выберите TCP. Выберите Конкретные локальные порты, а затем введите номер порта экземпляра порта React, например 19000 для экземпляра по умолчанию. Нажмите Далее.

В диалоговом окне Действие выберите Разрешить подключение, а затем нажмите Далее.

В диалоговом окне Профиль выберите все профили, описывающие среду подключения к компьютеру, когда вы хотите подключиться к механизму базы данных, а затем нажмите Далее.

В диалоговом окне Имя введите имя и описание этого правила, а затем нажмите "Готово" .

Аналогично, вы можете открыть порт 19001.

Ответ 2

В моем случае настройки брандмауэра сами по себе этого не делали. Моя проблема заключалась в том, что сетевые устройства VirtualBox приобретали приоритет, а хост Expo начинался с неправильной сети.

В Windows вы можете запустить ipconfig и посмотреть на сетевые адаптеры, которые у вас есть. Кажется, что yarn start npm/yarn start берет все, что отображается первым в этом списке.

Я узнал об этом отсюда: https://github.com/react-community/create-react-native-app/issues/60

Если вам не нужны другие сетевые адаптеры в списке, вы можете отключить их в интерфейсе сетевых подключений панели управления.

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

  1. Перейти к панели управления> Сеть и Интернет> Сетевые подключения
  2. Щелкните правой кнопкой мыши нужное соединение (соединение с более высоким приоритетом)
  3. Нажмите "Свойства"> "Протокол Интернета версии 4"
  4. Нажмите "Свойства"> "Дополнительно"
  5. Снимите флажок "Автоматическая метрика"
  6. Введите 10 в "Метрика интерфейса"
  7. Нажмите ОК.

Повторите для соединения с более низким приоритетом, но на этот раз введите 20 в "Метрика интерфейса",

Теперь вы используете соединение с более высоким приоритетом по умолчанию.

Ответ 3

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

set REACT_NATIVE_PACKAGER_HOSTNAME=192.168.1.69 (Windows)
REACT_NATIVE_PACKAGER_HOSTNAME=192.168.1.69 (Mac & Linux)

снова запустите свой проект, и вам будет хорошо.

Ответ 4

enter image description here

Прежде всего отключите неиспользуемое сетевое соединение. В моем случае это был VirtualBox. Может быть, он использует тот же порт. Я не уверен в этом. после отключения неиспользуемых соединений перезапустите упаковщик. если вы использовали npm, то наберите

npm start

Ответ 5

  • Найдено адрес ipv4
  • откройте приложение expo, затем нажмите, чтобы открыть кнопку снизу
  • написать exp://[ipv4adress]: 19000 для поиска
  • Затем ваше приложение откроется

Ответ 6

Я предлагаю вам установить приложение expo для реакции native, ссылку на официальное руководство здесь

npm install -g exp

Затем вы можете использовать программное обеспечение Genymotion для эмуляции различных настроек среды для запуска вашего приложения:

exp start

Если вы используете в терминале "npm start" с ответом native, для вас следующее. Я узнал, что, если мое приложение успешно работает, адреса IpV моего компьютера, которые показаны на терминале, и которые находятся на приложении Expo, идентичны, например:

ipconfig -> IPv4 Address. . . . . . . . . . . : 10.0.0.124
exp://10.0.0.124:19000

Основываясь на этом наблюдении, я решил эту проблему следующим образом:

  • Закрыть npm prompt script, на котором запущено приложение
  • Приложение Close Expo
  • Найдите свой IP, выполнив команду в терминале:

    ipconfig
    
  • Запустите команду в командной строке NodeJS с вашим IP (например, 10.0.0.124)

    set REACT_NATIVE_PACKAGER_HOSTNAME=10.0.0.124
    
  • Запустить приложение Expo, сканировать штрих-код

    npm start
    

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

  • Установить Genymotion с VirtualBox
  • SignUp на сайте Genymotion
  • Запустите программу Genymotion и! SignIn

Ответ 7

в Windows

  1. запустите команду ipconfig в командной строке

  2. получить адрес ip4 и скопировать его.

Чем

  1. Этот ПК> свойства> расширенные системные настройки> переменные среды
  2. добавьте следующую системную переменную: REACT_NATIVE_PACKAGER_HOSTNAME
  3. В качестве значения переменной мне пришлось вставить ip4.

затем запустите npm start Это работает для меня

Ответ 8

В случае, если кто-то все еще ищет ответ. Сначала сделайте основную вещь: сначала отключите VirtualBox Host-Only Network, открыв сетевые настройки. Это сработало для меня.

Ответ 9

Если вы используете git bash для разработки, то это решение Icruz4 поможет

Вместо

set REACT_NATIVE_PACKAGER_HOSTNAME

Использование:

export REACT_NATIVE_PACKAGER_HOSTNAME='192.168.1.123'

Замечания:

Когда вы запускаете

npm start

Экспо расскажет вам о выходе используемого им IP-адреса. Если этот IP-адрес не является IP-адресом,

REACT_NATIVE_PACKAGER_HOSTNAME

переменная среды не установлена должным образом

Ответ 10

Я сделал все, что упоминалось в контексте. Просто изменил мою подключенную сеть Wi-Fi от публичного до частного. Это работало для меня

Ответ 11

Этот вопрос можно было бы решить путем:

Установка переменной окружения с альтернативными инструкциями здесь

Или же

Назначение приоритета матрицы интерфейса для сетевых адаптеров с подробными инструкциями здесь или здесь.

Или же

Машина Ubuntu не может открыть порт

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

Удачи!

Ответ 12

У меня была такая же проблема. Проблема заключается в том, что запуск нити команды или запуск npm обнаруживает первый активированный сетевой адаптер, который он находит, который просто является адаптером для VirtualBox на моем (и многих других машинах). Решение:

вручную установите переменную среды REACT_NATIVE_PACKAGER_HOSTNAME или отключите неиспользуемый сетевой адаптер в сетевом подключении Windows (см. изображение). Проблема заключается в том, что Expo находит первый сетевой адаптер, а не активный сетевой адаптер, обеспечивающий подключение к Интернету.

enter image description here

Ответ 13

В моем случае эта проблема возникла из-за того, что приложению Expo android нужно разрешение " рисовать поверх других приложений ", а я его не дал. Так что я даю это разрешение на приложение Expo, и проблема решена..

Ответ 14

Одним из самых простых и 100% работающих решений является:

  1. Включите мобильную точку доступа на своем компьютере для разработки (ПК или настольный компьютер) и подключите устройство Android к этой точке доступа.
  2. Перейдите в Панель управления> Сеть и Интернет> Сетевые подключения. Вы окажетесь здесь, как показано: Настройка сетевых подключений.
  3. Затем установите IP-адрес для подключения по локальной сети (ваш DESKTOP HOTSPOT) к желаемому, скажем: 192.168.1.69, щелкнув правой кнопкой мыши соответствующее соединение и выбрав свойства → Протокол Интернета версии 4 (TCP/IPv4) → Свойства Затем установите приоритет этого соединения, чтобы быть самым высоким, и это лучше всего описано здесь
  4. Затем откройте командный терминал и запустите:

    set REACT_NATIVE_PACKAGER_HOSTNAME=192.168.1.69 (Windows)
    REACT_NATIVE_PACKAGER_HOSTNAME=192.168.1.69 (Mac & Linux)
    
  5. Затем перезапустите сервер expo, запустив npm start в папке проекта expo, и запустите приложение на устройстве Android, отсканировав сгенерированный QR-код с приложением expo.

Ответ 15

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

Ответ 16

В Windows,

set REACT_NATIVE_PACKAGER_HOSTNAME=my-ip-address

работал внутри моего терминала git bash, но не cmd. В git bash, после запуска npm start, у меня появилось всплывающее окно брандмауэра, которое я нажал на кнопку allow, и это сработало!

Ответ 17

  1. В своем устройстве: войдите в свое приложение expo, создайте учетную запись, если у вас ее нет.
  2. В вашей системе: открыть терминал, перейдите в каталог проекта с помощью команды cd, а затем введите sudo exp start и после этого вы спросите свои данные для входа в учетную запись expo.
  3. Это даст вам qr-код для сканирования.

Ответ 18

Я пробовал много решений, только таким образом помог мне решить эту проблему:

В Windows:

  • перейдите в раздел "Сеть и подключения" в панели управления Windows (Центр управления сетями и общим доступом> Изменить настройку адаптера)
  • Отключите все виртуальные окна, которые вы можете увидеть здесь.
  • Перезапустите npm или пряжу или выставку...

Ответ 19

Вам просто нужно открыть порт в Firewall Window, и все должно работать.

1. В меню "Пуск" выберите "Выполнить", введите WF.msc и нажмите "ОК".

В брандмауэре Windows с расширенной безопасностью в левой панели щелкните правой кнопкой мыши Правила входящих сообщений и выберите Новое правило в панели действий.

В диалоговом окне "Тип правила" выберите "Порт" и нажмите "Далее".

В диалоговом окне "Протокол и порты" выберите TCP. Выберите "Определенные локальные порты", а затем введите номер порта экземпляра порта React, например 19000 для экземпляра по умолчанию. Нажмите кнопку "Далее.

В диалоговом окне "Действие" выберите "Разрешить подключение" и нажмите "Далее".

В диалоговом окне "Профиль" выберите любые профили, описывающие среду подключения к компьютеру, когда вы хотите подключиться к механизму базы данных, а затем нажмите "Далее".

В диалоговом окне "Имя" введите имя и описание этого правила и нажмите "Готово".

Аналогичным образом вы можете открыть порт 19001.

Ответ 20

Я потратил весь день на поиски ответа и, наконец, случайно нашел решение. Просто измените соединение с локальной сети на туннель

Ниже изображение,

enter image description here