繁体   English   中英

react-native expo android macos问题

[英]react-native expo android macos issue

我在 android 上遇到了 react-native 应用程序的问题,

  • 应用程序是使用 expo 构建的

  • 该应用程序在 iOS 设备以及 iOS 模拟器上运行良好

  • 在 android 模拟器上运行,它在启动时给出警告。

可能未处理的 Promise 拒绝(id:0):

TypeError:网络请求失败

附上来自模拟器的错误图像

  • 任何后续调用fetch挂起并出现以下错误

[未处理的 promise 拒绝:TypeError:网络请求失败]

  • setTimeout$argument_0 中的 node_modules/whatwg-fetch/dist/fetch.umd.js:535:17
  • _callTimer 中的 node_modules/react-native/Libraries/Core/Timers/JSTimers.js:130:14
  • node_modules/react-native/Libraries/Core/Timers/JSTimers.js:383:16 in callTimers
  • __callFunction 中的 node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:416:4
  • __guard$argument_0 中的 node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:109:6
  • __guard 中的 node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:364:10
  • node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:108:4 in callFunctionReturnFlushedQueue
  • 【原生代码】:null in callFunctionReturnFlushedQueue

fetch 调用是对 https 进行的,但是,在阅读了网上的几篇文章后,我在 app.json 中添加了以下内容,但没有效果

"android": {
   "UsesCleartextTraffic": "true"
}

下面列出了来自 package.json 的应用程序依赖项

  "dependencies": {
    "@react-native-community/hooks": "^2.6.0",
    "expo": "~39.0.2",
    "expo-status-bar": "~1.0.2",
    "graphql": "^14.7.0",
    "graphql-request": "^3.3.0",
    "react": "16.13.1",
    "react-dom": "16.13.1",
    "react-native": "https://github.com/expo/react-native/archive/sdk-39.0.4.tar.gz",
    "react-native-maps": "^0.27.1",
    "react-native-web": "~0.13.12"
  },

关于可能是什么问题的任何帮助?

在此处输入图像描述

终于想通了……

这可能有助于其他尝试从您在 Android 模拟器中运行的应用程序连接到 VPN 中的端点的人

Android 模拟器有自己的网络堆栈,如果您的应用程序尝试连接到 VPN 中的端点,您必须执行以下操作

  1. 获取安装了 Google Play 商店的 android 设备映像。

  2. 在 Android 映像上下载并安装您选择的 VPN 工具

  3. 在android仿真器中启动VPN

  4. 现在,您在模拟器上的应用可以连接到受保护的 VPN 端点。

仅在您的主机上运行 VPN 是不够的,您需要在模拟器本身上运行 VPN...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM