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

Expo SDK47升级:bundled expo-cli返回的manifest无法被expo-dev-launcher解析

Expo SDK 47: Android Dev Client 加载 Manifest 报错解决方案

问题场景

升级到 Expo SDK 47 后,按照官方建议使用项目 bundled 的 expo-cli(通过 npx expo start --dev-client 启动),Android 应用选择开发服务器时抛出如下错误:

Value ----------------------------224819657222108214122421 of type java.lang.String cannot be converted to JSONObject

手动访问开发服务器的 manifest 地址(如 http://192.168.0.146:8081/?platform=android),发现返回内容开头带有多部分表单数据分隔符;但切换回全局安装的 expo-cli 执行 expo-cli start 时,manifest 是纯 JSON 格式,应用可正常加载。

可能原因

Bundled expo-cli 在部分环境下(比如存在本地代理/HTTP 抓包工具、项目依赖版本不匹配、缓存异常),错误地以 multipart/form-data 格式返回 manifest,而 Android Dev Client 仅能解析纯 JSON 格式的 manifest 响应。

解决方法

  • 清除 Expo 缓存后重启服务
    执行命令强制清除缓存,避免旧缓存导致的格式异常:

    npx expo start --dev-client --clear
    
  • 关闭本地 HTTP 拦截工具
    停用 Fiddler、Charles 这类抓包工具,或者检查系统代理设置,确保没有拦截修改 Expo 服务器的响应内容格式。

  • 锁定 expo-cli 版本与 SDK 47 匹配
    在项目 package.json 的 devDependencies 中明确指定兼容 SDK 47 的 expo-cli 版本(如 ^6.0.0),执行 npm install 后再启动服务:

    {
      "devDependencies": {
        "expo-cli": "^6.0.0"
      }
    }
    
  • 强制指定 manifest 返回格式
    部分版本的 expo-cli 支持通过参数强制返回 JSON 格式的 manifest,尝试执行:

    npx expo start --dev-client --manifest-type=json
    
  • 检查 expo-updates 配置
    确认项目 app.json 或 app.config.js 中的 updates 配置无异常,比如 url 指向正确,没有额外的请求头设置导致响应格式变化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 19:40:26