安卓应用构建时expo-av编译报错Promise类型不兼容求助
问题根因
这个报错核心是Expo相关依赖的版本不兼容:Expo SDK 45及之后的版本正式废弃了旧的org.unimodules命名空间,统一替换为expo.modules前缀,你安装的expo-av版本和底层依赖的unimodules/expo核心模块版本不匹配,导致类引用冲突。
解决方案
- 第一步:核对版本匹配关系
首先检查你项目中expo-av的版本,确保和其他已引入的Expo核心依赖版本完全一致:- 如果你使用
expo-av11.x及以上版本,需要完全卸载所有旧的unimodules相关依赖,替换为新的expo核心模块包 - 如果你不想调整现有核心依赖架构,直接将
expo-av降级到~10.2.0版本即可,该版本仍基于旧的unimodules架构开发
- 如果你使用
- 第二步:清理缓存重新构建
按顺序执行以下命令清理所有冗余缓存后再构建:# 删除旧的依赖文件 rm -rf node_modules package-lock.json yarn.lock # 重新安装依赖 npm install # 清理安卓端构建缓存 cd android ./gradlew clean # 回到根目录执行构建 cd .. ./gradlew build - 第三步:检查裸项目配置
如果你是React Native裸项目部分接入Expo依赖,额外检查android/build.gradle中的Expo依赖仓库配置,确保所有Expo相关依赖的版本号统一,没有跨版本引入的情况。
内容的提问来源于stack exchange,提问作者Arnaud P
相关产品推荐
相关产品推荐

