升级Expo至46版本后EAS构建失败:compileSdkVersion不兼容
Expo 46 eas build失败解决方法
问题根源
日志显示多个AndroidX依赖(如androidx.appcompat:appcompat:1.4.1)要求最低编译SDK版本为31,但当前项目的compileSdkVersion是android-30,版本不匹配导致构建失败。Expo SDK 46本身要求Android compileSdkVersion为31,必须统一版本才能解决。
解决步骤
1. 更新项目Android配置
打开项目的app.json或app.config.js,修改Android相关配置:
{ "expo": { "android": { "compileSdkVersion": 31, "targetSdkVersion": 31, "minSdkVersion": 21 // 保留你项目原本的最低版本即可 } } }
2. 清理缓存后重新构建
- 清理Expo缓存:
expo r -c
- 执行构建:
eas build
3. 处理第三方依赖冲突(如果步骤1、2无效)
如果还是失败,可能是第三方库拉取了不兼容的依赖版本:
- 自动修复依赖:
expo doctor --fix-dependencies
- 若自动修复不行,手动在
package.json里锁定冲突依赖的兼容版本,比如把androidx.appcompat:appcompat锁定到1.3.1(该版本支持compileSdk 30),但这是临时方案,优先用步骤1升级项目SDK版本。
4. 确认环境符合要求
确保本地环境满足Expo 46的要求:
- Node.js用14.x或16.x版本
- Expo CLI版本≥5.4.0
- Android SDK已安装API 31的组件
内容的提问来源于stack exchange,提问作者Jardeson Nogueira
相关产品推荐
相关产品推荐

