You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native远程调试报错:cleartext communication to localhost未被网络安全策略允许

嘿,这个问题我之前调试React Native项目时也踩过坑!给你理清楚原因和解决办法:

问题原因

Android从API 28(Android 9.0)开始,默认启用了严格的网络安全策略,禁止应用进行明文(cleartext)的HTTP通信。而React Native的远程调试器是通过localhost的HTTP连接与设备/模拟器通信的,刚好触发了这个安全限制,所以才会抛出这个错误。

解决办法

我整理了几个靠谱的方案,你可以按需选择:

1. 配置定向网络安全规则(最推荐,长期安全)

在你的RN项目的android/app/src/main/res/xml目录下,创建network_security_config.xml文件(如果xml目录不存在,先手动创建),写入以下内容:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">localhost</domain>
        <domain includeSubdomains="true">10.0.2.2</domain> <!-- 适配Android模拟器的特殊调试地址 -->
    </domain-config>
</network-security-config>

接着打开android/app/src/main/AndroidManifest.xml,在<application>标签中添加配置引用:

<application
  ...
  android:networkSecurityConfig="@xml/network_security_config">
  ...
</application>

这种方式只允许调试相关的地址走明文HTTP,既解决问题又不会放宽全局安全限制,适合长期使用。

2. 临时全局放宽明文限制(仅调试用,禁止生产环境)

如果只是临时调试不想改太多配置,可以直接在AndroidManifest.xml的<application>标签里加一行:

<application
  ...
  android:usesCleartextTraffic="true">
  ...
</application>

注意:这个方法会允许应用所有HTTP明文请求,存在安全风险,绝对不能用于生产包!

3. 改用HTTPS调试(进阶方案)

如果你的调试环境支持HTTPS,也可以切换到HTTPS调试地址,但配置相对繁琐,本地调试用前两种方法就足够了。

内容的提问来源于stack exchange,提问作者New iOS Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 17:52:37