React-Native安卓设备无法从API获取数据问题求助
安卓设备无法从API获取数据问题排查
问题情况
我在安卓设备上从API获取数据时遇到问题,要么无法获取数据,要么出现超时错误。各平台测试结果如下:
- Snack Expo(Web):测试通过,可成功获取数据
- Expo(本地Web端):测试通过,可成功获取数据
- Expo(安卓模拟器):加载耗时极长,未获取到数据,测试失败
- Expo GO(真机):测试失败,报错信息为
Uncaught Error: java.net.ConnectException: Failed to connect to /ip
使用版本
- "expo": "~48.0.15"
- "react": "18.2.0"
- "react-native": "0.71.8"
代码示例
App组件代码
import React, { useEffect, useState } from 'react'; import { View, Text, FlatList } from 'react-native'; export default function Test2() { const [data, setData] = useState([]); useEffect(() => { fetchData(); }, []); const fetchData = () => { console.log("start"); fetch('https://646ee64209ff19b120864a07.mockapi.io/users') .then(response => response.json()) .then(data => { console.log("data:", data); setData(data); }) .catch(error => { console.error(error); }) .finally(() => { console.log("end"); }); }; return ( <View> <FlatList data={data} renderItem={({ item }) => ( <View> <Text>Id user: {item.id}</Text> <Text>Name user: {item.name}</Text> <Text>-------------------------</Text> </View> )} keyExtractor={item => item.id} /> </View> ); }
App.Json配置
{ "expo": { "name": "MyApp", "slug": "MyApp", "version": "1.0.0", "orientation": "portrait", "icon": "./assets/icon.png", "userInterfaceStyle": "light", "splash": { "image": "./assets/splash.png", "resizeMode": "contain", "backgroundColor": "#ffffff" }, "assetBundlePatterns": [ "**/*" ], "ios": { "supportsTablet": true }, "android": { "adaptiveIcon": { "foregroundImage": "./assets/adaptive-icon.png", "backgroundColor": "#ffffff" } }, "web": { "favicon": "./assets/favicon.png" } } }
已尝试操作
- 检查网络:设备网络连接正常
- 检查API返回:JSON数据格式无问题
测试用API地址:https://646ee64209ff19b120864a07.mockapi.io/users
内容的提问来源于stack exchange,提问作者Jonathan Bui
相关产品推荐
相关产品推荐

