React-native: "не удалось подключиться к серверу разработки" - приложение для Android

Я следую руководству по запуску response.js. http://code.tutsplus.com/tutorials/creating-a-dictionary-app-using-react-native-for-android--cms-24969 Я установил node, отреагировал, и Android-студия и genymotion-эмулятор. Когда я добираюсь до части создания приложения в эмуляторе, я получаю эту ошибку:

изображение ошибки сборки

Я активировал инструмент debuggin USB. Когда я пытаюсь запустить команду adb devices в командной строке, это ничего не дает.

Ответ 1

Я бы предложил 2 шага (оба должны были решить мою проблему)

  • Отключите локальный брандмауэр. В osx перейдите к разделу "Безопасность и конфиденциальность" → "Брандмауэр" → Нажмите значок блокировки → "Отключить брандмауэр"

  • Возможно, используется порт 8081 по умолчанию (даже если команда lsof предполагает иное). Попробуйте запустить другой порт: react-native start --port=8088

    И на вашем устройстве встряхните его, чтобы получить меню dev, нажмите "Настройки Dev" → "Хост сервера отладки и порт для устройства" → введите "XX.XX.XX.XX: 8088" (где x ваш локальный IP-адрес)

Ответ 2

Похоже, сервер недоступен с телефона.

Возможные причины:

  • Возможно, сервер не работает
  • IP-адрес может быть неправильным
  • Телефон не может получить доступ к IP-адресу

Решение:

Если вы подключаете телефон через USB. Обратный TCP номер порта 8081, выполнив следующую команду

 adb reverse tcp:8081 tcp:8081

Ответ 3

В зависимости от того, откуда я строю, я не могу использовать свой локальный IP-адрес для запуска приложения React Native (обычно это общедоступные сети, например, кафе). Лучший способ, которым я смог это понять, - использовать инструмент ngrok, чтобы сделать общедоступный туннель для вашего локального хоста.

Как только вы его установили, просто запустите ngrok http 8081 (или любой другой порт, который вы используете для упаковщика). Он перевернет туннель и даст вам URL-адрес (например, http://123j2h3s.ngrok.io). В приложении встряхните, чтобы открыть настройки разработчика, нажмите Dev Settings, затем в разделе Отладка коснитесь Debug server host & port for device и введите URL-адрес ngrok (нет необходимости добавлять http://).

Надеюсь, это поможет!

Ответ 4

Вам нужно выполнить следующие команды, чтобы снова запустить npm:

1) sudo lsof -n -i4TCP: 8081 | grep LISTEN

2) kill -9 (введите здесь идентификатор процесса).

Ответ 5

У меня была аналогичная проблема с моим эмулятором в Ubuntu 16.04. В моем случае проблема заключалась в том, что пакет node не работал.

Чтобы проверить, запущен ли пакет, вы можете открыть браузер и ввести

http://localhost: 8081/

Вы должны увидеть, что "React Native packager запущен".

Если вы этого не сделаете, вы можете запустить упаковщик с консоли с помощью

начало реакции с инициативой

Если вы получили сообщение об ошибке, например

"ОШИБКА смотреть /your/project/path/android/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values-ru ENOSPC"

Затем запустите сначала

echo fs.inotify.max_user_watches = 524288 | sudo tee -a/etc/sysctl.conf && & sudo sysctl -p

Затем запустите повторный запуск с принудительной перезагрузкой и дважды нажмите букву R в эмуляторе для перезагрузки.

Ответ 6

Для запуска с локального сервера выполните следующие команды в корневом каталоге вашего проекта с инициативой

  • response-native start > /dev/null 2 > & 1 & 2.adb reverse tcp: 8081 tcp: 8081

Чтобы запустить без сервера, запустите jsfile в apk, запустив:

1.создайте папку с ресурсами в разделе android/app/src/main 2. curl " http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"