ReactNative场景下Android模拟器无法访问本地Docker HTTPS服务求助
排查思路
DNS解析问题排查
DNS_PROBE_FINISHED_NXDOMAIN错误本质是域名解析失败,优先排查该类问题:
- 在Android模拟器shell执行
nslookup 你的业务域名,验证返回IP是否和服务部署的公网IP一致 - 若IP返回异常,先将模拟器DNS替换为公共DNS(8.8.8.8、114.114.114.114)重试,排除本地DNS节点未同步解析记录的问题
- 若使用本地测试域名/localhost:
- Android模拟器默认无法直接解析宿主机localhost,可改用模拟器默认宿主机映射IP
10.0.2.2访问 - 自定义本地域名需修改模拟器
/etc/hosts文件,手动添加域名与IP的映射规则
- Android模拟器默认无法直接解析宿主机localhost,可改用模拟器默认宿主机映射IP
Android端基础配置排查
- 先验证模拟器网络连通性:在模拟器内置浏览器访问公网站点,排除模拟器本身断网问题
- 检查应用网络权限:确认
AndroidManifest.xml中已添加<uses-permission android:name="android.permission.INTERNET" /> - 若目标SDK≥28(Android 9+),默认禁用明文HTTP请求,测试阶段可在
AndroidManifest.xml的application节点添加android:usesCleartextTraffic="true"临时放行,生产环境需全量切换HTTPS - 校验SSL证书兼容性:
- Android 7.0+默认不信任用户安装的自签名证书,自签名证书需额外添加到应用网络安全配置中
- 确认证书链完整,部分小众CA的根证书未收录在Android系统信任列表,也会导致访问失败
服务端配置排查
- 检查Apache服务监听地址:需配置为
0.0.0.0而非127.0.0.1,否则外部设备无法访问 - 检查服务器安全组、防火墙规则:确认业务端口已对公网开放,Android设备所在出口IP未被拦截
- 若为局域网部署,确认Android设备与服务端在同一网段,无跨网段隔离限制
React Native WebView专属配置排查
若模拟器浏览器可正常访问域名,仅应用内WebView无法加载,再排查以下配置:
- 确认react-native-webview已开启JavaScript权限:对应属性
javaScriptEnabled={true} - 开启Dom存储权限:对应属性
domStorageEnabled={true} - 若页面存在HTTP、HTTPS混合资源,需设置
mixedContentMode="always"允许混合内容加载
内容的提问来源于stack exchange,提问作者Adam.G
相关产品推荐
相关产品推荐

