react-native expo android macos问题

Posted

技术标签:

【中文标题】react-native expo android macos问题【英文标题】:react-native expo android macos issue 【发布时间】:2021-03-25 14:25:00 【问题描述】:

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

应用是使用 expo 构建的

应用在 ios 设备和 iOS 模拟器上运行良好

在安卓模拟器上运行,启动时会发出警告..

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

TypeError:网络请求失败

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

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

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

node_modules/whatwg-fetch/dist/fetch.umd.js:535:17 in setTimeout$argument_0 node_modules/react-native/Libraries/Core/Timers/JSTimers.js:130:14 in _callTimer node_modules/react-native/Libraries/Core/Timers/JSTimers.js:383:16 in callTimers node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:416:4 in __callFunction node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:109:6 in __guard$argument_0 node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:364:10 in __guard node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:108:4 in callFunctionReturnFlushedQueue [native code]: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"
  ,

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

【问题讨论】:

请发布一个可重现的示例:***.com/help/minimal-reproducible-example 我相信您正在向服务器发出网络请求,该服务器返回错误响应或由于某种原因您无法从您的 android 模拟器访问 我正在调用 *** 中的服务器,同时也在使用 sonicwall 在您的机器上运行 *** 【参考方案1】:

终于想通了……

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

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

    获取已安装 google play 商店的 android 设备映像。

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

    在安卓模拟器中启动***

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

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

【讨论】:

以上是关于react-native expo android macos问题的主要内容,如果未能解决你的问题,请参考以下文章

Expo react-native 将无法连接到 socketio(Android 和 iOS)

如何在 Android 上减小 expo/react-native 应用程序的大小

React-Native Expo,Facebook 登录无法在 Android 设备上运行

在生产模式下运行 expo android 应用程序时出错 - React-native

如何在 expo/react-native 应用程序中添加自定义节点模块?

Expo React-Native Android 版本未更新 Google Play 的版本代码