为啥我的模拟器不适用于 NativeScript?

Posted

技术标签:

【中文标题】为啥我的模拟器不适用于 NativeScript?【英文标题】:Why my Emulator doesn't work with NativeScript?为什么我的模拟器不适用于 NativeScript? 【发布时间】:2019-11-10 22:15:41 【问题描述】:

我已经在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,首先确保它可以在浏览器/rest 客户端中访问,从我的角度来看,它看起来不像。 @Manoj:它给了我This site can’t be reached 10.0.2.2 took too long to respond. @Manoj:我从这里找到它developer.android.com/studio/run/emulator-networking 我想知道你到底想在这里做什么,为什么你会点击那个IP?如果您尝试访问托管在本地机器或公共服务器上的任何 REST API,它应该是该机器的 IP。 @Manoj:我有一个 json 服务器,当我运行它时,它会在 localhost:3000/ 上监视。所以我喜欢让模拟器观察那个地址并显示那里的内容。 【参考方案1】:

经过一个月的尝试,我在 NativeScript 的 github 上找到了如下答案:

在 API29 上测试,问题是您可能缺少 AndroidManifest.xml 文件中的 cleartext 权限。

在此处设置:your-application/app/App_Resources/Android/src/main/AndroidManifest.xml

在 AndroidManifest.xml 中设置android:usesCleartextTraffic

<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">  

【讨论】:

以上是关于为啥我的模拟器不适用于 NativeScript?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 WebSQL 不适用于使用 PhoneGap 制作的 iOS 应用程序?

Nativescript 手势不适用于 vuejs

Nativescript + Angular:flexShrink=“1” 似乎不适用于 iOS。我做错了吗?

为啥此代码不适用于 mcp3008? (来自 adafruit 官方网站)

FCM - 推送通知仅适用于控制台而不适用于邮递员

为啥我的 NYC 代码覆盖范围不适用于 ESM?