Expo SDK从33升级到42后Android运行Gradle依赖缺失问题求助
问题根因
你遇到的依赖拉取失败问题是Expo SDK跨大版本升级后,Android项目的Maven仓库配置不匹配导致的:仅升级了Gradle版本,未同步调整根build.gradle的仓库配置,Google官方Maven源未收录对应版本的gson、guava依赖包,无法完成拉取。
解决方案
- 调整Android根目录build.gradle仓库配置
打开android/build.gradle文件(非app模块下的build.gradle),分别修改buildscript和allprojects下的repositories块,补充mavenCentral和jcenter源,参考配置如下:
buildscript { repositories { google() // 新增以下两个仓库 mavenCentral() jcenter() } dependencies { // 原有依赖无需修改 } } allprojects { repositories { google() // 新增以下三个仓库 mavenCentral() jcenter() maven { url "https://jitpack.io" } } }
- 清理缓存并重新构建
依次执行以下命令清理旧缓存:
- 清理Android构建缓存:
cd android && ./gradlew clean(Windows环境执行cd android && gradlew clean) - 清理项目依赖缓存:
rm -rf node_modules && npm install(若使用yarn则执行rm -rf node_modules && yarn install) - 清理Expo本地缓存:
expo r -c
- 可选兼容优化
如果后续仍出现Gradle版本兼容报错,可将Gradle版本升级至6.7.1,修改gradle/wrapper/gradle-wrapper.properties中的distributionUrl为https\://services.gradle.org/distributions/gradle-6.7.1-all.zip,该版本完全适配Expo SDK 42,可规避更多底层兼容问题。
内容的提问来源于stack exchange,提问作者Bharanitharan Sakthivel
相关产品推荐
相关产品推荐

