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

React Native Expo配置usesCleartextTraffic报错如何解决

报错原因

Expo 对app.json的配置字段做了强schema校验,android配置节点下没有和原生属性同名的顶层usesCleartextTraffic字段,直接添加就会触发你看到的「should NOT have additional property」报错。

根据你当前使用的Expo工作流,选对应方案配置即可:

托管工作流(未导出原生工程,Managed Workflow)

不需要手动修改原生文件,两种配置方式选其一就行:

方式1:使用官方封装配置项(SDK 45及以上版本推荐)

注意:所有Expo配置都必须放在expo根节点下,不要在配置文件根级新增android字段,否则也会触发校验错误
配置示例:

{
  "expo": {
    // 其余expo全局配置保持不变
    "android": {
      // 其余android相关配置保持不变
      "usesCleartextTraffic": true
    }
  }
}

配置完成后重新构建开发客户端/生产包即可生效,Expo Go环境默认已经开启明文流量支持,不需要额外配置。

方式2:直接覆写Manifest配置(全SDK版本通用)

如果你的SDK版本低于45,或者方式1配置不生效,可以直接通过Expo提供的Manifest覆写能力给application标签注入属性:

{
  "expo": {
    "android": {
      "manifest": {
        "application": {
          "$": {
            "android:usesCleartextTraffic": "true"
          }
        }
      }
    }
  }
}

裸工作流(已导出原生工程,Bare Workflow)

如果项目已经执行过npx expo prebuild导出了完整原生工程,直接修改原生Manifest文件即可:

  • 打开路径android/app/src/main/AndroidManifest.xml
  • 找到<application>标签,直接添加android:usesCleartextTraffic="true"属性,示例:
<application
  android:name=".MainApplication"
  android:label="@string/app_name"
  android:icon="@mipmap/ic_launcher"
  android:usesCleartextTraffic="true"
  ...其余原有属性
>
<!-- 其余标签内容保持不变 -->
</application>

安全提示:开启明文流量允许应用发起未加密的HTTP请求,会降低通信安全性,建议仅在本地调试、对接测试环境时开启,生产环境尽量关闭,所有服务接口使用HTTPS协议。

内容的提问来源于stack exchange,提问作者Carlos Craig

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 11:18:37