Expo托管工作流React Native Android构建失败:androidx.core版本冲突
解决Expo托管工作流Android构建失败问题
问题分析
初始构建失败是因为间接依赖拉取了androidx.core:core:1.15.0-alpha01,该版本要求项目编译SDK至少为35,但Expo SDK51(对应React Native 0.74.2)默认使用的Android Gradle插件(AGP)8.2.1最高仅支持编译SDK 34。强行通过expo-build-properties升级编译SDK到35后,又因Expo模块未适配AGP 8.3+及对应Kotlin版本,触发expo-modules-core的Kotlin编译错误。
解决方案
1. 修复依赖版本冲突,锁定稳定版androidx.core
在package.json中添加resolutions强制锁定androidx.core到Expo SDK51兼容的稳定版本,同时移除冲突的@expo/config-plugins降级配置:
{ // ... 其他配置 "resolutions": { "androidx.core:core": "1.14.0" } }
注:原配置中
@expo/config-plugins的resolution(5.0.2)与依赖声明的~8.0.0冲突,必须删除,否则会导致Expo模块兼容性问题。
2. 修复并重新安装依赖
运行命令自动修复依赖版本并清理缓存:
npx expo install --fix
如果使用npm/yarn:
# npm npm install npx expo prebuild --clean # yarn yarn install npx expo prebuild --clean
3. 排查引入alpha版androidx.core的依赖(可选)
如果上述步骤无效,运行命令定位哪个依赖引入了问题版本:
# npm npx why androidx.core # yarn yarn why androidx.core
找到对应依赖后,要么升级该依赖到适配Expo SDK51的版本,要么继续通过resolutions强制替换其依赖的androidx.core版本。
4. 不要强行升级编译SDK到35
Expo SDK51暂未适配Android API35及对应的AGP 8.3+,强行升级会导致Kotlin编译错误,需等待Expo更新或后续SDK版本支持。
内容的提问来源于stack exchange,提问作者Nicolas Anjorand
相关产品推荐
相关产品推荐

