#android #react-native #metro-bundler
Вопрос:
У меня очень странная проблема, которую я не могу решить. Я также не уверен, как это сделать в Google, потому что, хотя я знаком с React Native, я не знаком с самим Android и не уверен, каким должен быть мой поисковый запрос.
Итак, в моем собственном коде react мой клиент добавил следующий network_security_config.xml
файл по android/app/src/main/res/xml
пути:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">_my_clients_ip</domain>
</domain-config>
</network-security-config>
и, следовательно, они добавили следующее в AndroidManifest.xml
файл по android/app/src/main
пути:
.
.
<application
.
.
android:networkSecurityConfig="@xml/network_security_config"
</application>
.
.
Точки выше указывают на другие атрибуты и теги, которые я опустил для краткости.
Моя проблема
Я использую эмулятор Android для тестирования своего приложения React Native.
Пока вышеуказанного xml не было, мое приложение react native функционировало нормально. Однако с учетом вышеприведенного добавления, когда я запускаю свое приложение react native с помощью команд (в 2 разных терминалах):
$ npx react-native start --reset-cache
$ npx react-native run-android
Приложение загружается в эмулятор, но, похоже, оно отключено от пакета metro (работает терминал npx react-native start --reset-cache
).
Я пытаюсь нажать r
клавишу в этом терминале, чтобы проверить, работает ли перезагрузка, и она выводит:
warn No apps connected. Sending "reload" to all React Native apps failed.
Make sure your app is running in the simulator or on a phone connected via USB.
Хотя я не совсем понимаю, почему. Если бы я убрал то android:networkSecurityConfig="@xml/network_security_config"
из того AndroidManifest.xml
, то все было бы хорошо.
Как мне решить эту проблему?
Ответ №1:
Вы можете попробовать добавить домены локального хоста в XML-файл :
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">_my_clients_ip</domain>
<domain includeSubdomains="true">127.0.0.1</domain>
<domain includeSubdomains="true">10.0.0.1</domain>
<domain includeSubdomains="true">localhost</domain>
</domain-config>
</network-security-config>