ПОЖАЛУЙСТА, НЕ УДАЛЯЙТЕ ЭТОТ ШАБЛОН, ПОКА НЕ ПРОЧИТАЕТЕ ПЕРВЫЙ РАЗДЕЛ.
Это проблема, с которой я сталкиваюсь при запуске обычного Awesome Project в моей системе.
Если вы ответили «Да»: мы ожидаем, что вам потребуется около 30 минут, чтобы подготовить высококачественный отчет об ошибке. Хотя это может показаться большим, внимательное отношение к проблемам помогает нам быстрее их устранять. Для отчетов об ошибках НЕОБХОДИМО заполнить оставшуюся часть этого шаблона, иначе проблема будет закрыта. Если вы ответили «Нет»: мы используем GitHub Issues исключительно для отслеживания ошибок в React Native. Если вам нужна помощь, на странице сообщества по адресу http://facebook.github.io/react-native/support.html перечислены различные ресурсы, которые помогут вам начать работу. Теперь пролистайте ниже!да
react-native -v
: 0.47.1node -v
:8.2.1npm -v
:4.1.2yarn --version
:Затем укажите:
(Напишите свои шаги здесь :)
1. Откройте командную строку в режиме администратора.
2.выполнить команду: компакт-диск
3.run команда: реактивная инициализация
4.выполнить команду: компакт-диск
5.run команда: реактивный запуск Android
это заставляет сервер пакетов автоматически запускаться на порту 8081. Но я не могу получить доступ к серверу пакетов из браузера на машине и мобильном телефоне.
Я пытался использовать http://
http://локальный : порт
http://127.0.0.1 : порт
=> Я получал красный экран как на мобильном телефоне, так и на эмуляторе со следующим сообщением:
Я попытался запустить проект на реальном устройстве и на эмуляторе. На обоих я получил сообщение об ошибке: «Невозможно загрузить скрипт из ресурсов« index.android.bundle ». Убедитесь, что ваш пакет правильно упакован или вы используете сервер пакетов».
при перезагрузке получаю ошибку: "Не удалось подключиться к серверу разработки".
Затем я установил номер хоста и порта в настройках разработки на обоих и получил ошибку «Не удалось подключиться к серверу разработки».
Ожидается, что проект будет работать на эмуляторе и телефоне без каких-либо ошибок.
Но вместо этого я получил ошибку, и я пытался много раз, и я неоднократно получаю одну и ту же ошибку и по одному и тому же шаблону.
(Вставьте ссылку на пример проекта и точные инструкции, чтобы воспроизвести проблему.)
Еще проблема с:
реагировать 16.0.0-альфа.6
РН 0.44.3
узел 8.2.1
нпм 5.3.0
XCode 8.3.3
Симулятор iOS 10.3
Так мне нужно работать на предыдущей версии этих?
Я встречаю это, и не могу справиться с этим....
что-то не так с последней версией?
Упаковщик работает? Вы должны увидеть его, когда запустите react-native run-android
. Вы также можете запустить его самостоятельно, используя react-native start
. Я хотел бы выяснить, не заключается ли проблема в том, что упаковщик вообще не запускается.
Да, упаковщик работает. Когда я запускаю команду react-native run-android, открывается окно узла js, в котором говорится, что упаковщик работает на 8081 и "Загрузка графика зависимостей. Готово"
Но когда я пробую « localhost:8081/index.android.js » в системном браузере, я вижу ошибку «Этот сайт недоступен».
Но когда я создаю обычный API-интерфейс nodejs и тестирую его в браузере, он успешно открывается.
У меня такая же проблема. Симулятор iOS работает нормально, кстати
Всякий раз, когда я пытаюсь создать новый проект в RN, каждый раз я натыкаюсь на стену новых ошибок.
Следующая попытка в следующем месяце снова, я думаю...
такая же проблема. кто-нибудь решит?
Попробуйте запустить:
adb reverse tcp:8081 tcp:8081
в командной строке и после этого повторно запустите проект.
@ashafizullah : я тоже это пробовал; но все равно не повезло.
Бывает и на моем устройстве.
У меня подключен usb, перевернут adb и запущен упаковщик.
При открытии следующей ссылки в браузере устройства пакет загружается успешно:
http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=false&minify=false
Поэтому я подозреваю, что в самом коде Java что-то не так.
есть ли решение по этому поводу? Я тоже застрял здесь. На IOS проект работает отлично
Я видел ту же проблему, и все потому, что приложение для Android не имеет этого разрешения:
<uses-permission android:name="android.permission.INTERNET" />
Поэтому убедитесь, что ваш код Android может получить доступ к удаленному URL-адресу из вашего приложения.
у меня такая же проблема неужели никто не может решить?
Я тоже столкнулся с такой же проблемой, если кто-нибудь найдет решение, пожалуйста, напишите. Спасибо.
Привет люди. Я использовал console.dir() в режиме реагирования и получил такое поведение. И я думаю, что это нормально, потому что console.dir() - это функция browser.window, а браузер не имеет React-Native. После удаления console.dir() мое приложение заработало.
Я столкнулся с той же проблемой на Mac, есть новости?
у меня такая же проблема в тесте устройства.
Андроид 4.1.2
Привет. Ребята, у кого версия андроида ниже 5.0, пробовали ли вы использовать подключение по вайфаю вместо usb? Мое приложение нормально запускается на Android 4.3 (Huawei mediapad T1 8.0) после подключения через Wi-Fi.
была эта проблема, для меня это оказался порт 8081, который использовался postgresSQL
У меня такая же проблема сегодня.
Андроид 4.4.2 и 6.
Та же проблема и здесь. Происходит каждый раз, когда я снова открываю свой Mac после короткого времени сна. Кто-нибудь решил это?
adb reverse tcp:8081 tcp:8081
- мне это не подходит
Моя ошибка была устранена путем изменения ограничений inotify.
Эта ссылка помогла https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers
такая же проблема, помогите
У меня также возникла такая же проблема, когда я пытаюсь запустить его с локального хоста. Работает в браузере и на эмуляторе, но не на физическом устройстве
Та же проблема здесь для Android, как с устройства, так и с эмулятора. Не могу подключиться к упаковщику. Выполнение "adb reverse..." для физического устройства. Также работает на пользовательском порту, поэтому выполняется «реагирование на родной старт --port 8088», а затем устанавливается IP- адрес: 8088 в настройках dev в приложении.
ВОПРОС: Есть ли способ найти неисправность между приложением (на моем устройстве Android) и упаковщиком, работающим на ПК с Windows?
ОБНОВЛЕНИЕ: запуск «adb reverse --list» показал, что у меня есть две обратные записи. Кажется, после того, как я исправил это, все заработало. У меня все еще есть только «белая страница», но я думаю, что это другая проблема.
Та же проблема с Android, iOS работает...
как это может случиться
я тоже столкнулся с той же проблемой,
а раньше у меня все нормально работало
затем я получаю бесконечный цикл, из-за которого мой рабочий стол сильно тормозит.
поэтому я решил закрыть эмулятор и сборщик метро, которые я получаю от реактивного запуска
я попробовал этот код ниже, но не повезло
react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
Столкнулся с той же проблемой и потратил пару дней на это. Оказывается, порт 8081 по умолчанию был заблокирован на моей машине. Изменил порт в соответствии с инструкциями здесь https://github.com/facebook/react-native/issues/10715 , и теперь он работает.
Ребята, вы можете попробовать открыть этот URL-адрес в веб-браузере устройства?
http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=false&minify=false
@kevinresol , если менеджер пакетов говорит, что он запущен на порту 8081, и вы не можете получить к нему доступ из браузера, то, скорее всего, порт заблокирован вашим брандмауэром. Просто попробуйте изменить порт по умолчанию или посмотрите, сможете ли вы открыть порт.
Как упоминалось в моем предыдущем посте , я могу получить доступ к бандлу через браузер устройства.
У меня та же проблема, что и у @kevinresol. Я вижу пакет в браузере, но ошибка сохраняется. Я на эмуляторе, но я все еще пробовал adb reverse, но не повезло.
@ bruno02100 bruno02100 , если вы работаете в Windows и подключаетесь через Wi-Fi, попробуйте отключить брандмауэр. Посмотрите, решит ли это проблему.
@jerrykurian Я на Mac с эмулятором Android. Мой брандмауэр уже отключен. Это действительно странно.
После настройки Debug server host & port for device
на 192.168.x.x:8081
в Dev Settings
(акулируйте телефон, появится всплывающее меню)
это работа для меня
PS: НЕ нужно создавать какой-либо пакет вручную, он будет автоматически создан при успешном подключении.
Я думаю, что любая проблема с Wi-Fi или решение Wi-Fi не по теме. ОП говорил о подключении к localhost
через USB с adb reverse
Я заметил, что эта ошибка возникает только после того, как эмулятор некоторое время работает. Поэтому на данный момент каждый раз, когда появляется эта ошибка, я просто перезапускаю свой эмулятор и запускаю react-native run-android. Это действительно раздражает, но у меня не так много времени, чтобы разобраться в этом, так что придется это сделать.
Я могу подключиться к серверу разработки после сборки через студии Android, но если я обновляю код при редактировании кода, мое устройство или эмулятор не могут подключиться к серверу.
Мои зависимости
«реагировать»: «16.0.0»,
"реагировать-родной": "0.50.4",
Я могу подтвердить, что решение @xlebenny по ручной настройке хоста и порта сервера отладки на устройстве сработало для меня в только что извлеченном проекте CRNA.
Шаг за шагом, чтобы извлечь и запустить CRNA на Android
В терминале:
create-react-native-app myApp
cd myApp
yarn run eject
(я использовал параметры по умолчанию «обычный проект React Native»)react-native run-android
(теперь приложение должно быть скомпилировано и установлено на телефон)
На телефоне:
index.js
» в Metro Bundler (которое открывается при запуске react-native run-android
)Живая перезагрузка (при изменении исходных файлов) по-прежнему возможна — просто встряхните телефон и коснитесь «Включить живую перезагрузку».
@ashafizullah , не могли бы вы объяснить, как эта команда решила проблему. Благодарность
@ plong0 решил это для меня!
Как указывает @bruno02100 , кажется, что эта ошибка возникает, если устройство открыто в течение длительного периода времени. Отключение быстрой загрузки в настройках эмулятора решило эту проблему для меня 👍
Введите adb shell и посмотрите, прослушивает ли он ваш локальный сервер? настройте IP-адрес и порт сервера в настройках разработчика. Это должно исправить это.
@ plong0 спасибо за помощь, но мне это не помогло.
Я не могу запустить свое приложение на устройстве Android с помощью MAC.
@ramintagizade - как мне проверить, слушает ли приложение мой локальный сервер? какая команда:
adb shell [command]
?
Да, adb shell и netstat.
на основе этого http://facebook.github.io/react-native/docs/running-on-device.html
получить доступ к вашему локальному IP-адресу (например: http://192.168.43.188:8081/) из браузера и убедиться, что он отображается
Упаковщик React Native запущен.
Посмотреть документацию
затем перейдите к настройкам разработчика в вашем эмуляторе:
Для пользователей Mac вы можете выполнить следующие шаги:
Шаг 1: запустите «adb reverse tcp:8081 tcp:8081 »
Шаг 2: Нажмите «команда m»
Шаг 3: Нажмите «Настройки разработчика».
Шаг 4: Нажмите «Отладить хост-сервер и порт для устройства».
Шаг 5: Во всплывающем окне введите «10.0.2.2:${port_id}» в разделе «port_id», используя порт, на котором запущено ваше приложение.
Шаг 6: Теперь запустите «react-native run-android».
если вы пытаетесь отладить приложение на своем физическом устройстве Android через Wi-Fi с помощью компьютера с Windows, возможно, устройство не сможет получить доступ к порту вашего ПК или ноутбука,
вы должны сделать порт доступным. это включает в себя два шага:
1.Сначала создайте правило в брандмауэре. для этого выполните следующие действия:
```
открыть диалог запуска
-тип wf.msc
-нажмите на входящие правила
-нажмите новое правило справа
-выберите порт из всплывающего меню и нажмите «Далее»
-выберите порт tcp и определенные локальные порты и введите номер порта, например 8081 (по умолчанию)
-разрешить подключение
-выбрать все в разделе профиля
- дать какое-то подходящее имя и описание
-нажмите "Готово"
Все готово, теперь попробуйте запустить react-native run-android.
Была аналогичная проблема, хотя позже я понял, что мое эмулируемое устройство (андроид) вообще не имело подключения к Интернету (или сети). У него вообще не было символа WiFi или LTE. Перезапуск эмулятора не решил проблему, но перевел его в режим плоскости и снова выключил режим плоскости. В моем случае это может быть общая ошибка Android, связанная с потерей сетевого подключения.
Мы столкнулись с этой проблемой. Чтобы исправить это, ниже приведено очень простое решение.
В основном эта ошибка говорит о том, что ваша текущая сборка не удалась из-за таких причин, как проблема с кодом или проблема с зависимостями.
Не уверен, что вызвало мою проблему с эмуляторами Android на macOS. Возможно, установка новых Android AVD или установка различных обновлений Android Studio?
Эта команда висела:
watchman watch-del-all
Это решило проблему для меня:
````
варить деинсталлировать сторож
варить установить сторож
сторож
````
Я мог бы решить эту проблему, наконец, перезапустив эмулятор.
Наконец-то я нашел свою проблему.
В моем случае это было для настройки прокси-сервера эмулятора.
Просто зайдите в настройки эмулятора и не устанавливайте прокси.
Надеюсь, это может помочь
Всем привет,
Я обнаружил ту же проблему при работе в среде Windows и моделировании с помощью симулятора Android.
После некоторых проб и ошибок я нашел решение, как показано ниже:
1 >> Измените порт в «node_modules\react-native\local-cliserverserver.js» по умолчанию:
process.env.RCT_METRO_PORT || 8081
к
по умолчанию: process.env.RCT_METRO_PORT || 9088
если порт заблокирован или выдан какому-то другому приложению.
Примечание . Вы можете выбрать любой номер порта, я выбрал 9088.
2 >> Запустите команду react-native run-android --port 9088 (укажите здесь номер своего порта). Этот порт должен быть отправлен в запущенный adb, так что и сервер, и adb должны быть на одном и том же порту.
3 >> Теперь в симуляторе студии Android нажмите Ctrl + m, чтобы перейти к « Настройке разработчика», затем выберите порт и хост сервера отладки для устройства , установите « localhost: 9088 ».
4 >> Откройте консоль разработчика в Chrome, используя URL-адрес http://localhost : 9088/debugger-ui/
Теперь он начнет загружать изменения, которые вы вносите в свое приложение.
Наслаждайтесь кодированием сейчас :)
Спасибо, что опубликовали это! Похоже, вы не используете последнюю версию React Native v0.53.0, выпущенную в январе 2018 года. Можете ли вы убедиться, что эта проблема все еще может быть воспроизведена в последней версии?
Я собираюсь закрыть это, но, пожалуйста, не стесняйтесь открывать новую проблему, если вы можете подтвердить, что это все еще проблема в версии 0.53.0 или новее.
Да, я использую «реагировать-нативный»: «0.53.0».
Но эта проблема возникла, когда я использовал внутренний корпоративный прокси. Возможно, некоторые порты заблокированы или используются корпорацией. Поэтому я использовал этот способ решения. И разместил здесь, чтобы другие могли решить эту проблему.
Та же проблема на реальном устройстве Android. Версия 5.1.1
Просто откройте командную строку и перейдите в каталог проекта, просто введите «yarn» и нажмите Enter, все будет в порядке.
@ashafizullah его решение работает!!!!
Будь то симулятор или реальное устройство для Android, просто сделайте следующее:
@Alijaaan та же проблема, что и у меня, по-видимому. Спасибо!
Единственное решение, которое я нашел, это удалить из студии Android AVD Manager ваш текущий эмулятор и добавить новый. Все снова начинают работать.
Большое спасибо @Alijaaan
Он использовал настройку прокси-сервера Android Studio.
Я снял флажок «использовать настройку прокси-сервера Android Studio», а затем выбрал «Без прокси». Уже все хорошо.
Комментарий @esutton решил мою проблему.
Кстати, watchman — моя любимая программа. Я всегда был рад приостановить свой день на несколько часов, чтобы отследить случайные проблемы RN и понять, что все, что мне нужно сделать, это запустить watchman watch-del-all
. Теперь даже эта команда зависает, и нам приходится время от времени переустанавливать ее, я стал еще более счастливым разработчиком.
у меня сработал реактивный run-android --port 9088. Спасибо @Louies89
я нахожу решение
1.отключи антивирус
2закройте мой брандмауэр
я думаю, что это проблема с недавними изменениями в коде, особенно если вы используете стороннюю библиотеку, такую как нативная база. что я сделал, переместился на несколько шагов назад Ctrl + z , удалил приложение из эмулятора и перезапустил его. потом реагировать-натив-запустить-андроид и все работает! может это как-то связано с кешированием эмулятора
@pinchez254 согласен с вами. Первый запуск всегда в порядке.
Пожалуйста, запустите сервер npm с помощью команды npm start
Здравствуйте, я указал IP-адрес своего компьютера в настройках разработчика (192.168.1.103:8081) и создал входящее правило в брандмауэре для доступа к tcp-порту 8081, но получаю эту ошибку:
"could not connect to development serve"
ТАКЖЕ
при вводе в браузере "http://localhost:8081/index.delta?platform=android&dev=true&minify=false"
сборка началась и успешно завершилась!
Для меня работает:
adb reverse tcp:8081 tcp:8081
react-native start --reset-cache
react-native run-android
сделал свое дело
Пришлось открыть два терминала.
Первый забег
sudo npm start
После запуска
react-native run-ios
react-native run-android
, react-native start --port=8088
react-native run-android --port=8081
:)
Единственный способ, которым мне удалось это решить, - это поиск всех ссылок на порт 8081 и изменение на 9088 (неиспользуемый) и начало с -- порта 9088. Также изменена настройка Dev на порт 9088. Было несколько ссылок на порт 8081 по умолчанию в node_module/react-native dir. Порт 8081 использовался защитой от вирусов в моей среде.
Для меня инструменты платформы Android не были установлены. Поэтому я установил с помощью следующей команды.
варить бочку установить android-platform-tools
После этого запуск из Android-студии или командной строки с помощью * response-native run android * работал
Перезагрузка моего Mac решила эту проблему для меня, понятия не имею, почему
во-первых, убедившись, что вы находитесь в своем файле проекта, мне помогает это решение:
react-native start
скорее всего вы получите ошибку с кодом ENOSPC
в этом случае используйте этот код:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
после этого вы снова запустите react-native start
, и, скорее всего, ваша ошибка ENOSPC будет устранена.
затем просто запустите react-native run-android
вот, у меня это работает в Linux с эмулятором Android от Android Studio
У меня была эта ошибка,
Я нашел решение, сделав это.
сначала я удалил все модули узлов.
sudo rm -rf node_modules/
затем я снова установил пакеты npm
npm install
затем я запускаю эту команду для проверки того, что реагирующие пакеты в порядке.
react-native start
он показывает мне, что с пакетами все в порядке, а затем я запускаю андроид с правами root
react-native run-android --root
затем я обнаружил, что это работает.
Также обратите внимание, что начиная с Android 9 передача открытого текста HTTP (не HTTPS) по умолчанию запрещена. Чтобы разрешить подключение к серверу разработки с устройства, на котором запущено ваше приложение, добавьте этот атрибут в элемент application
в файле _AndroidManifest.xml_:
android:usesCleartextTraffic="true"
Дополнительная информация об этой проблеме Stackoverflow
Вы можете проверить, может ли ваше устройство получить доступ к серверу разработки, введя URL-адреса в собственном веб-браузере.
К сожалению, нативные инструменты разработки реакции поглощают причину ошибки, но она появляется, если вы пытаетесь установить собственное HTTP-соединение внутри целевого приложения, где вы получите полезную трассировку стека.
@delj К сожалению, собственные инструменты разработки React поглощают причину ошибки.
Совет: используйте manifestPlaceholders , чтобы предотвратить выпуск с android:usesCleartextTraffic= "true"
AndroidManifest.xml
````
android:usesCleartextTraffic="${isDebug}"
>
````
Android/приложение/build.gradle
типы сборки { отлаживать { manifestPlaceholders = [isDebug: true] } выпуск { manifestPlaceholders = [isDebug: false]minifyEnabled enableProguardInReleaseBuilds proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" signingConfig signingConfigs.release } }
У меня была такая же проблема, и то, что сработало для меня в Windows 10, буквально просто открыло CMD от имени администратора.
у меня все еще есть эта проблема. Можем ли мы открыть эту резервную копию. Это совершенно нелепо, как это учебник «Начало работы», если вы выполняете все шаги до буквы, а он не запускается. Я буквально потратил часы на эту ошибку. Facebook должен решить эту проблему. Либо их руководство просто НЕПРАВИЛЬНО, либо хорошо известные случаи устранения неполадок, на которые они могут ссылаться.
Вот мои шаги:
Все еще есть эта проблема. Я также пытался добавить значение порта при выполнении шага 3, но это тоже не сработало. Кто-нибудь может помочь.
Я полностью сочувствую - мы только что потратили час на исправление этого.
Здесь возникает несколько проблем, наиболее важной из которых является настройка открытого текста. Прежде чем что-либо делать, обновите приложение до последней версии Android SDK, иначе эти настройки не будут работать. Чтобы проверить, есть ли у вас эта проблема, вставьте этот код в одну из ваших самых верхних функций рендеринга. Например, <App
fetch('http://jofarnold.com')
.then(res => res.text())
.then(d => alert('ok'))
.catch(e => {
console.error(String(e));
});
Обратите внимание на http
, а не на https
. Да, мой сайт не http. Но сейчас я ни о чем не жалею!
Теперь попробуйте
fetch('https://httpbin.org')
.then(res => res.text())
.then(d => alert('ok'))
.catch(e => {
console.error(String(e));
});
Обратите внимание на http .
Какой из них терпит неудачу? Если оба не работают, у вас есть другие проблемы, и я не могу вам помочь, но попробуйте проверить, работают ли эти URL-адреса в Chrome в вашем симуляторе, чтобы исключить неработающую сеть. Если первый терпит неудачу (он даст ответный собственный красный ящик), но второй преуспевает (он будет предупреждать с помощью ok
), значит, вы неправильно настроили параметры безопасности Android. Итак, давайте сделаем это.
Сначала введите следующее в android/.../AndroidManifest.xml в разделе <application
<manifest
....
<application
... other settings
android:usesCleartextTraffic="true" <---------- this
android:networkSecurityConfig="@xml/network_security_config" <------- and this
>
... etc
Затем создайте файл в android/...res/xml/network_security_config.xml (вам может потребоваться добавить каталог xml: имя файла не является чем-то особенным - оно просто должно быть таким же, как в ссылке выше), как это :
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">jofarnold.com</domain>
</domain-config>
</network-security-config>
Перекомпилируйте, убедившись, что вы делаете react-native start --reset-cache
в одном терминале (учитывая reset-cache) и react-native run-android
в другом.
Теперь вы загружаете приложение, вы получите всплывающее окно. Хорошая вещь! Вам удалось fetch
моего небезопасного сайта.
Теперь нам нужно разобраться с родной реакцией. У меня сервер на 10.0.2.2 и отладчик на localhost или что-то в этом роде (не помню, пишу частично по памяти). В любом случае они разные, и поэтому это не работает.
Для этого измените jofarnold.com
выше на localhost
, а затем перейдите в меню настроек в приложении (cmd-M на Mac) > Настройки разработчика. Отключите «Использовать JS Deltas» (это не работает) и в разделе «Отладка» установите хост сервера и порт на localhost:8081
Ваш файл конфигурации безопасности должен выглядеть так:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">localhost</domain>
</domain-config>
</network-security-config>
Перекомпилируйте, перезапустите react-native start --reset-cache
, и вы увидите зеленую полосу в верхней части приложения с loading...
или чем-то еще. В терминале вы должны увидеть его в комплекте с Delta, Map и так далее.
Я думаю, вам не нужно делать adb reverse
. В любом случае это делается как часть скриптов RN.
Удачи!
Моя проблема заключалась в том, что мой эмулятор Android был отключен от Wi-Fi и данных. Я просто включил их, и он работает. Надеюсь, это поможет, если кто-то сталкивается с той же проблемой.
Моя проблема заключалась в том, что мой эмулятор Android был отключен от Wi-Fi и данных. Я просто включил их, и он работает. Надеюсь, это поможет, если кто-то сталкивается с той же проблемой.
Одна важная вещь, которую я должен добавить к комментарию Матео; если вы закроете свой MacBook и возобновите работу в другой сети Wi-Fi, это может привести к сбою «wifi» симулятора. Вы должны перезапустить симулятор. Я знаю, что это не проблема конкретно для симулятора, но у него хорошее SEO для этой темы, поэтому, надеюсь, оставление этого комментария здесь поможет кому-то еще.
решить с помощью Android 5.0 или выше, ошибка в Android 4..4
решить с помощью Android 5.0 или выше, ошибка в Android 4..4
Я согласен
Если вы используете эмулятор Android 9, вы должны добавить, как указано @delj , android:usesCleartextTraffic="true"
в свой тег приложения в manifest.xml
Упаковщик работает? Вы должны увидеть его, когда запустите
react-native run-android
. Вы также можете запустить его самостоятельно, используяreact-native start
. Я хотел бы выяснить, не заключается ли проблема в том, что упаковщик вообще не запускается.
Почему возникает эта проблема?? У меня мак с ОС 10.13.6 и до запуска сервера автоматически
Спасибо @JofBigHealth , я сделал, как вы предложили, и это работает на эмуляторе и на реальном устройстве.
Но у меня проблемы с приложением, когда я загружаю его из альфа-канала. у вас есть предложения по его отладке?
@ шева007 шева007 Я не уверен, что вы подразумеваете под «альфа-каналом». Можете ли вы объяснить, а также включить более подробную информацию о том, какие проблемы у вас есть конкретно?
@JofBigHealth извините за недостающую информацию.
ОБНОВЛЕНИЕ: теперь все работает, мне просто пришлось немного подождать, пока Google Play не сделает обновленную рабочую версию доступной для тестеров. Большое тебе спасибо :)
моя первоначальная проблема заключалась в том, что приложение работает хорошо < Android 9, но оно не будет совершать сетевой вызов с Android 9, когда я использовал ваше решение, приложение, включая сетевые вызовы, работает должным образом.
но когда я отправил его на альфа-канал Google Play. он не делает сетевые вызовы.
реверсирование портов сработало для меня
по предложению @ashafizullah
Закрытие Android Studio, которое я открыл, странно решило проблему для меня. непонятно почему...
ОБНОВЛЕНИЕ: для симулятора с момента обновления до 0.57.7 я не нашел необходимости ни исправлять обратный прокси adb
, ни менять порт в меню разработчика. По умолчанию это что-то вроде 10.0.1.1:8080 (догадываюсь по памяти) и Just Works. Я запускаю react-native start
или react-native start --reset-cache
(если требуется) и собираю из Android Studio, и все работает отлично. Если вы настроили его на отладку, у вас должен быть запущен отладчик, и вам может потребоваться повторная сборка из Android Studio, поскольку иногда он не подключается в первый раз (из-за того, что я подозреваю, это состояние гонки), но в остальном все в порядке. Просто не забудьте правильно установить параметры безопасности в манифесте приложения.
Устройство - другое дело.
Такая же проблема при попытке запуска на устройстве. Есть ли решение для устройства?
У меня такая же проблема. Пожалуйста помогите.
вы должны добавить путь в свои переменные среды... путь "adb", вы можете найти его местоположение в папке C:Users\user\AppData\Local\Android\Sdk/platformtools
Это сработало для меня в Windows 10: (после настройки хоста и порта отладочного сервера..)
Я проверил настройки своего брандмауэра (Брандмауэр Windows> Разрешить приложение или функцию через брандмауэр Windows) и обнаружил, что есть ДВА приложения Node.js, но одно из них не разрешено через брандмауэр! Поставил галочку и сохранил тогда все заработало как надо!
это хороший вопрос .. и его работа.!
Если вы используете эмулятор Android 9, вы должны добавить, как указано @delj ,
android:usesCleartextTraffic="true"
в свой тег приложения в manifest.xml
рекомендуемые
Та же ошибка.
виндовс7+андроид студия3.3.2.
Сервер узла активен, и я могу запустить 127.0.0.1 из симулятора Chrome, но приложение Awesome не может подключиться к серверу узла.
Я также добавил android:usesCleartextTraffic="true"
в AndroidManisfesto.xml, но все равно получил ошибку
@aflext Вы запускали команду adb reverse tcp:8081 tcp:8081
в красном поле? Обычно это работает.
@JofBigHealth Решил проблему, изменив URL-адрес с 127.0.0.1:8081
на localhost:8081
.
В моем случае решением было отключить/включить «Удаленная отладка JS».
@ashafizullah : я тоже это пробовал; но все равно не повезло.
@ashafizullah да, со мной тоже не работает.
можно ли запустить этот проект через windows????
Моя ошибка была устранена путем изменения ограничений inotify.
Эта ссылка помогла https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers
ЭТО РАБОТАЕТ!! БОЛЬШОЕ СПАСИБО!!
Моя ошибка была устранена путем изменения ограничений inotify.
Эта ссылка помогла https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers
Это сработало для меня. Спасибо чувак.
Я добавил android:usesCleartextTraffic="true"
к AndroidManifest.xml
в теге <application ...
и пересобрал приложение. После этого он начал нормально загружаться с dev-сервера.
Это происходило со мной, потому что у меня был запущен отладчик и подключен к другому устройству. Таким образом, симулятор iOS, подключенный к отладчику, блокировал подключение Android-устройства к упаковщику. Остановка удаленной отладки в симуляторе iOS позволила устройству Android подключиться, или вы также можете начать удаленную отладку на устройстве Android.
Это сработало для меня в Windows 10: (после настройки хоста и порта отладочного сервера..)
Я проверил настройки своего брандмауэра (Брандмауэр Windows> Разрешить приложение или функцию через брандмауэр Windows) и обнаружил, что есть ДВА приложения Node.js, но одно из них не разрешено через брандмауэр! Поставил галочку и сохранил тогда все заработало как надо!
Это была и моя проблема, спасибо!
https://www.youtube.com/watch?v=XhiE0HEiYd4
но.... когда я перезагружаю приложение в эмуляторе, снова происходит сбой и отображается сообщение:
НЕ МОЖЕТ ПОДКЛЮЧИТЬСЯ К СЕРВЕРУ РАЗРАБОТКИ
Итак, я попытался добавить node.js и genymotion player.exe в брандмауэр и перезапустить все (geny, реагировать) и снова работает...
ctrl+Win cmd командная строка ipconfig, чтобы найти мой адрес ipV4 192.168.0.111, после этого я вставил 192.168.0.111:8081 в
Успешно решено!
Я добавил
android:usesCleartextTraffic="true"
кAndroidManifest.xml
в теге<application ...
и пересобрал приложение. После этого он начал нормально загружаться с dev-сервера.
Это исправило это. Благодаря тонну.
Такая же проблема только на реальном устройстве Android.
Решение:
1) Добавьте файл android/app/src/main/res/xml/network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">localhost</domain>
</domain-config>
</network-security-config>
2) Добавьте строку в android/app/src/main/AndroidManifest.xml
<application
...
android:networkSecurityConfig="@xml/network_security_config"
...
>
Найдите лекарство.
Эта проблема помогла мне решить проблему, выполнив следующие действия.
Это применимо к Android 9.0+ в соответствии с Конфигурацией сетевой безопасности .
Итак, перепробовав все возможные решения, которые я нашел в Интернете, я решил вручную исследовать собственный лог-код Android. Даже после добавления android:usesCleartextTraffic="true"
я нашел это в логарифме:
06-25 02:32:34.561 32001 32001 E unknown:ReactNative: Caused by: java.net.UnknownServiceException: CLEARTEXT communication to 192.168.29.96 not permitted by network security policy
Итак, я попытался проверить исходный код моего приложения, основанного на реакции. Я обнаружил, что в варианте debug
уже есть конфигурация сетевой безопасности, которая определена реагирующими парнями, которая конфликтует с вариантом main
.
Есть простое решение.
Перейти к <app-src>/android/app/src/debug/res/xml/react_native_config.xml
Добавьте новую строку со своим IP-адресом в
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="false">localhost</domain>
<domain includeSubdomains="false">10.0.2.2</domain>
<domain includeSubdomains="false">10.0.3.2</domain>
***<domain includeSubdomains="false">192.168.29.96</domain>***
</domain-config>
</network-security-config>
Поскольку локальный IP-адрес моего компьютера (проверьте ifconfig
для Linux) — 192.168.29.96, я добавил указанную выше строку в *
Затем вам нужно очистить и пересобрать для Android!
cd <app-src>/android
./gradlew clean
cd <app-src>
react-native run-android
Я надеюсь, что это работает для вас.
Что я сделал: (работает на эмуляторе Android Pie 9)
Debug server host & port for device
, нажав Ctrl+M
и Dev Setting
в эмуляторе. Убедитесь, что вы установили хост и порт, используя хост и порт Bundler (по умолчанию: localhost:8081
) и убедитесь, что ваш порт не заблокирован другим процессом.adb reverse tcp:8081 tcp:8081
в домашнем каталоге проекта.android:usesCleartextTraffic="true"
к узлу <application>
в AndroidManifest.xml
@ Eyesonly88 это решило проблему для меня - спасибо.
Для вас, кто столкнулся с этой проблемой, особенно при настройке targetSdkVersion на API 28.
Все, что вам нужно сделать, это добавить в файл network_security_config следующие строки:
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
PS: В моем случае у меня есть несколько файлов network_security_config для каждого варианта, поскольку это проблема отладки, добавления этих строк в файл network_security_config в варианте отладки было достаточно.
================================================== =======================
Подробнее об ошибке ниже:
Если мы перейдем к https://developer.android.com/training/articles/security-config.html , мы увидим, что эти строки кода выше являются конфигурацией безопасности по умолчанию для Android API 24 до API 27. (Android 7.0 до андроид 8.1).
Это означает, что для Android 9, API 28, в котором я столкнулся с ошибкой, конфигурация по умолчанию изменилась.
В частности, конфигурация по умолчанию для Android API 28:
<base-config cleartextTrafficPermitted="false">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
.
Вот почему мне помогло использование конфигурации по умолчанию для старых API.
Другая вещь, которая также работала для меня в начале, заключалась в том, чтобы установить для targetSdkVersion значение API 27. Если вы не хотите работать с API 28, это может сработать и для вас.
Если вы используете эмулятор Android 9, вы должны добавить, как указано @delj ,
android:usesCleartextTraffic="true"
в свой тег приложения в manifest.xmlрекомендуемые
вы сэкономили мое время. большое спасибо.
Ребята, я открыл Wi-Fi на эмуляторе, и у меня это сработало.
что решило мою проблему, так это использовать sudo yarn start
вместо yarn start
У меня есть скрипт в моем package.json с
{
...
"scripts":{
"start":"react-native start"
}
....
}
Если вы используете эмулятор, такой как xCode или Android Studio, вам не нужно устанавливать адрес сервера разработки в настройках с вашим IP. Он установится автоматически. Просто удалите его и перезапустите приложение. Меня устраивает.
Если вы используете эмулятор Android 9, вы должны добавить, как указано @delj ,
android:usesCleartextTraffic="true"
в свой тег приложения в manifest.xmlрекомендуемые
Вы спасли мой день
Что я сделал: (работает на эмуляторе Android Pie 9)
- Установите IP и порт на
Debug server host & port for device
, нажавCtrl+M
иDev Setting
в эмуляторе. Убедитесь, что вы установили хост и порт, используя хост и порт Bundler (по умолчанию:localhost:8081
) и убедитесь, что ваш порт не заблокирован другим процессом.- Запустите
adb reverse tcp:8081 tcp:8081
в домашнем каталоге проекта.- Добавьте узел
android:usesCleartextTraffic="true"
к узлу<application>
вAndroidManifest.xml
- После выполнения трех пунктов выше перезапустите проект.
Я могу подтвердить, что решение @rafidamr является правильным. Но я был в корпоративной среде, где не мог использовать порт 8081, поэтому я просто переключил Metro Bundler на другой порт, например так:
adb reverse tcp:8088 tcp:8088
react-native run-android --port 8088
И, конечно же, указал на новый порт в настройках разработчика эмулятора.
Спасибо @camposbrunocampos 👏🏼 , я использовал target: Android 9.0
с API level 28
.
Обновил network_security_config.xml
и теперь эмулятор работает нормально.
У меня были проблемы с запуском как на ios, так и на android (пробовал на android studio, без android studio, с xcode и без xcode). Пробовал все выше изложенное.
Итак, что НЕ помогло:
Единственное, что мне нужно было сделать, это выполнить: sudo npm start из родного каталога проекта. Похоже на проблему с разрешением. (используя Mac)
@inspiraluna , это основная проблема установки npm, вы должны указать свой системный каталог.
добавьте android:usesCleartextTraffic= "true" в ваше приложение в манифесте
android:usesCleartextTraffic="true"
android:theme="@style/AppTheme">
Меня устраивает.
Я добавил
android:usesCleartextTraffic="true"
кAndroidManifest.xml
в теге<application ...
и пересобрал приложение. После этого он начал нормально загружаться с dev-сервера.
Это решило проблему и для меня, но я предварю это, сказав, что сначала пробовал это исправление, и оно не сработало. Мне пришлось начинать заново с новыми эмуляторами, несколько раз убивать и перезапускать abd, переустанавливать студию Android, обновлять gradle и т. д.
@ Eyesonly88 Спасибо .. У меня работает
я добавил
android:usesCleartextTraffic= "true" для AndroidManifest.xml
Вот как я исправил проблему отсутствия инструментов разработчика в эмуляторе:
Этот ответ SO предлагает проверить ваш файл MainApplication.java
и удалить BuildConfig.Debug
из метода getUseDeveloperSupport
, поэтому он выглядит так:
<strong i="11">@Override</strong>
public boolean getUseDeveloperSupport() {
// Return true to load JS from the packager.
// If BuildConfig.DEBUG is false, assets will be loaded from assets folder.
return true; // BuildConfig.DEBUG;
}
Самый полезный комментарий
Попробуйте запустить:
adb reverse tcp:8081 tcp:8081
в командной строке и после этого повторно запустите проект.