Expo开发的Native App iOS运行正常 安卓端构建运行报错如何解决
Expo安卓构建失败排查解决方案
jcenter()残留配置全排查路径
仅修改根目录build.gradle无法覆盖所有配置位置,逐处检查以下路径:
- 项目根目录
settings.gradle:多数Expo旧模板会在dependencyResolutionManagement.repositories代码块、插件解析配置块中默认写入jcenter声明,需要逐段注释删除 - 模块级
android/app/build.gradle:部分老版本原生依赖的配置段会单独声明jcenter仓库,属于高频遗漏点 - 本地全局Gradle配置:检查用户目录下的
.gradle/init.gradle文件,部分国内镜像配置脚本会全局注入jcenter仓库,优先级高于项目内配置,会直接覆盖你改的项目配置 - Expo预构建缓存:如果之前执行过
expo prebuild,旧的原生目录缓存可能没同步配置修改,直接删除整个android文件夹,执行npx expo prebuild --clean重新生成全新原生配置,比逐行排查改配置效率高很多
Task :app:checkDebugAarMetadata FAILED报错修复方案
这个核心报错和你之前遇到的prolog解析错误、jcenter警告属于同源问题,按优先级依次尝试以下操作:
- 全量清理构建缓存,不要只找build_cache目录:
依次执行以下命令完成全量缓存清理后再重新构建:# 进入安卓目录清理Gradle构建缓存 cd android ./gradlew clean cd .. # 清理Expo、Metro打包缓存 rm -rf node_modules/.cache npx expo start --clear - 排查依赖兼容性:jcenter关停后大量未迁移的老版本AAR包元数据已经损坏,如果项目中引入了长期未更新的第三方原生依赖,要么升级依赖到已迁移至Maven Central的最新版本,要么手动下载对应AAR包放到
android/app/libs目录做本地依赖,不要走远端仓库拉取 - 开启Jetifier自动修正依赖元数据:在
android/gradle.properties文件中新增一行配置:
该配置会自动转换旧版依赖的仓库声明、修复元数据格式问题,能解决80%以上的AAR元数据校验失败报错android.enableJetifier=true - 升级Expo SDK版本:如果你使用的是SDK 46及更早的旧版本,官方原生模板默认硬编码了jcenter配置,手动修改很容易出现遗漏,直接升级到最新稳定版SDK即可,新版模板已经全量迁移到Google Maven、Maven Central仓库,不会再触发jcenter相关警告
你之前参考的删除build_cache内容的方案仅适用于老版本Gradle本地缓存损坏的场景,当前jcenter关停导致的元数据损坏属于远端仓库问题,只清本地缓存不会生效,必须先完全移除所有jcenter配置、替换为可用的Maven源,再清理缓存重新构建才能解决问题。
内容的提问来源于stack exchange,提问作者John Doe
相关产品推荐
相关产品推荐

