Ответ 1
Я решил это НЕ используя adb для изменения моего TCP-порта 8081.
ОБНОВЛЕНИЕ 2: Я думал, что решил это, используя свое общедоступное имя IP/хоста, но оказывается, что react-native run-android
создает adb reverse
каждый раз при его выполнении. См. UPDATE 1 внизу для соответствующих ссылок.
ОРИГИНАЛ:
Когда я изначально установил свою машину для React Native, я выполнил следующую команду, чтобы приложение React взаимодействовало с React Packager: adb reverse tcp:8081 tcp:8081
. Я заметил, что каждый раз, когда я запускал react-native run-android
, мой эмулятор оставался приклеенным к "Fetching JS Bundle в течение длительного времени".
Чтобы устранить проблему с эмулятором в Windows:
-
Доступ к меню разработчика (в приложении, в эмуляторе), путем имитации встряхивания устройства. Откройте
Additional Tools -> Accelerometer
и нажмите "Воспроизвести" в нижней части окна подRecorded data: shake
. -
Нажмите
Dev Settings
(последний пункт меню). -
Нажмите
Debug server host & port for device
и установите значение дляpublic IP/Name:Port
моего ПК в сети. (например,devpc.mynet.local:8081
или192.168.1.99:8081
). -
Закройте приложение для реагирования.
-
Запустите
adb reverse --remove-all
, чтобы отменить мою предыдущую командуadb reverse tcp:8081...
. -
Перезагрузите все, начиная с моего компьютера, запустив
react-native run-android
. Обратите внимание, что на этот раз шагFetching JS Bundle
выполняется почти сразу.
Я только что нашел это решение для своей собственной среды. Я не пробовал его на каких-либо реальных устройствах. Кроме того, мне интересно, есть ли способ указать это из кода, чтобы он работал правильно в первый раз (вместо того, чтобы указывать публичный IP/имя моего компьютера, запустив приложение на устройстве и установив его в настройках Dev есть...)
Официальная документация:
ОБНОВЛЕНИЕ 1: Ниже приведены некоторые сведения о настройке предпочтений устройства debug_http_host
.