Почему мой эмулятор не работает с NativeScript?

Я загрузил свой проект здесь https://github.com/rezaee/conFusion, но когда я пытаюсь запустить его с помощью tns run android --device Pixel_2_API_29, он открывает мой эмулятор, но показывает это сообщение об ошибке на экране:

Error:0-Unknown Error Http failure response for https://10.0.2.2

Я также пробовал следующие строки, но все они дают ту же ошибку:

export const baseURL = "http://10.0.2.2:3000/";
export const baseURL = "http://192.168.1.5:3000/";
export const baseURL = "http://localhost:3000/";

Почему это происходит и как я могу это исправить?

localhost точно не будет работать, так как эмулятор работает в своем собственном контексте, больше похожем на отдельное устройство. http://10.0.2.2:3000 - это общедоступный IP-адрес, убедитесь, что он доступен в браузере/остальном клиенте в первую очередь, с моей стороны это не похоже.
Manoj 29.06.2019 09:58

@Manoj: это дает мне This site can’t be reached 10.0.2.2 took too long to respond.

Hasani 29.06.2019 10:40

@Manoj: я нашел это здесь developer.android.com/studio/run/emulator-networking

Hasani 29.06.2019 10:51

Могу я узнать, что именно вы пытаетесь здесь сделать, почему вы выбрали этот IP? Если вы пытаетесь получить доступ к каким-либо REST API, размещенным на вашем локальном компьютере или общедоступном сервере, это должен быть IP-адрес этого компьютера.

Manoj 29.06.2019 10:53

@Manoj: у меня есть json-сервер, который, когда я запускаю его, смотрит localhost:3000/. Поэтому мне нравится указывать эмулятору, чтобы он смотрел этот адрес и также отображал его содержимое.

Hasani 29.06.2019 11:00

У меня есть localhost:3000/dishes, например. Или localhost:3000/images и т. д. Мне нравится говорить эмулятору, что загружает это содержимое.

Hasani 29.06.2019 11:02

Затем найдите локальный IP-адрес на вашем компьютере, где вы используете сервер JSON. На Mac вы можете найти его в настройках сети.

Manoj 29.06.2019 11:03

@Manoj: У меня Windows10, и когда я запускаю ipconfig, он показывает мне Ethernet adapter VMware Network Adapter VMnet1, Ethernet adapter VMware Network Adapter VMnet8: and адаптер беспроводной локальной сети Wi-Fi`, что у каждого из них есть локальный IP-адрес.

Hasani 29.06.2019 11:12

Я использовал 192.168.1.5 для Wireless LAN adapter Wi-Fi, но это не сработало и выдает то же сообщение об ошибке.

Hasani 29.06.2019 11:14

Я пробовал все три локальных IP-адреса, но ни один из них не работал!

Hasani 29.06.2019 11:20

Если вы не можете получить доступ к API с IP-адресом (например, 192.168.1.5:3000/тарелки), по крайней мере, в браузере на вашем компьютере / Rest Client, вы указываете неправильный IP-адрес. Это не имеет ничего общего с вашим эмулятором Android или NativeScript. Я не пользователь Windows, поэтому не уверен, где можно найти правильный IP. Вы можете просто погуглить.

Manoj 29.06.2019 11:37
0
11
297
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

После месяца попыток я нашел следующий ответ на github NativeScript:

Протестируйте API29, и проблема в том, что вам, вероятно, не хватает разрешения cleartext в файле AndroidManifest.xml.

Установите его здесь: your-application/app/App_Resources/Android/src/main/AndroidManifest.xml

Настройка android:usesCleartextTraffic в AndroidManifest.xml

<application android:name = "com.tns.NativeScriptApplication"
          android:allowBackup = "true"
          android:icon = "@drawable/opportuity"
          android:label = "@string/app_name"
          android:theme = "@style/AppTheme"
          android:usesCleartextTraffic = "true">  

Другие вопросы по теме