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

从Expo SDK 47升级到SDK 48时构建失败求助

Expo SDK 48升级后EAS Build安卓报错的解决方案

问题分析

从expo-doctor的检测结果来看,核心问题是项目中存在旧版本的@expo/config-plugins@4.1.5,而SDK 48要求的版本是^5.0.2。直接更新依赖后问题依旧,大概率是某个第三方依赖间接拉取了旧版本的@expo/config-plugins,导致无法自动升级到要求版本。

解决步骤

1. 定位依赖来源

运行命令查看哪个包在依赖旧版本的@expo/config-plugins:

# npm 用户
npm why @expo/config-plugins

# yarn 用户
yarn why @expo/config-plugins

从输出的依赖树中找到具体的依赖包,比如某些未适配SDK 48的第三方插件。

2. 强制指定正确版本

通过锁定版本的方式,强制让所有依赖使用SDK 48要求的@expo/config-plugins版本:

  • npm 用户:在package.json中添加overrides字段:
    "overrides": {
      "@expo/config-plugins": "^5.0.2"
    }
    
  • yarn 用户:在package.json中添加resolutions字段:
    "resolutions": {
      "@expo/config-plugins": "^5.0.2"
    }
    

3. 清理缓存并重装依赖

删除旧的依赖缓存和锁定文件,确保新配置生效:

# 删除 node_modules 和锁定文件
rm -rf node_modules package-lock.json  # npm
# 或 rm -rf node_modules yarn.lock  # yarn

# 清理包管理器缓存
npm cache clean --force  # npm
# 或 yarn cache clean  # yarn

# 重新安装依赖
npm install  # npm
# 或 yarn install  # yarn

4. 验证修复并重新构建

运行expo-doctor确认问题解决:

npx expo-doctor

如果所有检测项通过,再尝试执行EAS Build:

eas build --platform android

额外提示:检查废弃依赖

expo-app-auth已被Expo官方标记为废弃,SDK 48推荐使用expo-auth-session替代。如果上述步骤仍未解决问题,可以考虑替换该依赖:

# 卸载旧依赖
npm uninstall expo-app-auth
# 安装替代依赖
npx expo install expo-auth-session

然后根据官方文档调整代码逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 03:16:09