React Native Android模拟器Realm用户认证时网络请求失败
Android模拟器中Realm认证网络请求失败的解决方案
以下是针对你遇到的「React Native Realm认证在Android模拟器失败、物理设备正常」问题的排查和解决方法:
检查模拟器代理设置
模拟器默认可能继承系统代理,若代理配置错误会阻断Realm请求。进入模拟器「设置→网络和互联网→代理」,设置为「无」;若使用Android Studio模拟器,可在启动时添加-no-proxy参数绕过代理。禁用模拟器IPv6支持
部分环境下模拟器IPv6兼容性差,导致Realm请求失败。通过adb执行以下命令强制使用IPv4:adb shell settings put global ipv6_enabled 0执行后重启模拟器再测试。
升级Realm SDK版本
旧版Realm React Native SDK可能存在模拟器网络请求bug,升级到最新稳定版:npm install realm@latest cd android && ./gradlew clean && cd .. npx react-native run-android配置网络安全策略(调试用)
若模拟器存在SSL证书信任问题,可临时允许明文请求(仅限测试,正式环境禁用):- 在
android/app/src/main/res/xml创建network_security_config.xml:<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true"> <trust-anchors> <certificates src="system" /> <certificates src="user" /> </trust-anchors> </base-config> </network-security-config> - 在
AndroidManifest.xml的<application>标签添加:android:networkSecurityConfig="@xml/network_security_config"
- 在
排查DNS解析问题
若模拟器无法解析realm.mongodb.com,可通过ping命令获取域名IPv4地址,临时修改Realm初始化配置:const app = new Realm.App({ id: "application-0-xxxxxx", baseUrl: "https://[获取到的IPv4地址]/api/client/v2.0" });测试成功后,可在模拟器设置中手动指定DNS服务器(如8.8.8.8)。
内容的提问来源于stack exchange,提问作者Ozymandias
相关产品推荐
相关产品推荐

