React Native项目执行gradlew构建时依赖解析失败求助
React Native Android构建失败:无法解析JCenter中的依赖包
问题核心
构建失败的直接原因是所有缺失的依赖包都在尝试从已停止服务的JCenter仓库拉取,该仓库已不再维护,因此无法获取这些资源,导致mergeDebugAssets任务执行失败。
解决方案步骤
1. 替换JCenter仓库为可用源
修改项目根目录下的build.gradle文件,将仓库配置中的jcenter()替换为mavenCentral(),同时保留必要的Google仓库:
allprojects { repositories { google() mavenCentral() mavenLocal() maven { url "https://jitpack.io" } // 按需保留第三方仓库 } }
2. 更新Fresco系列依赖版本
旧版Fresco包仅发布在JCenter,需升级到支持Maven Central的版本(建议2.5.0及以上),修改app模块下的build.gradle:
// 替换旧的Fresco依赖 implementation 'com.facebook.fresco:fresco:2.5.0' implementation 'com.facebook.fresco:drawee:2.5.0' implementation 'com.facebook.fresco:imagepipeline:2.5.0' // 其他Fresco子模块同步更新版本号
3. 替换仅存于JCenter的第三方依赖
- android-image-cropper: 替换为迁移到Maven Central的官方最新版(groupId已变更):
implementation 'com.github.CanHub:Android-Image-Cropper:4.3.0' - blurview: 升级到发布在Maven Central的最新版本:
implementation 'com.eightbitlab:blurview:3.7.0'
4. 清理缓存并重新构建
执行命令清除Gradle缓存,避免旧配置干扰:
# Windows系统 gradlew clean build --refresh-dependencies # 或使用React Native CLI命令 npx react-native clean npx react-native run-android
补充说明
- 命名空间映射警告是Android SDK工具与Gradle版本不兼容导致的,解决依赖问题后可尝试升级Gradle到7.x版本,并同步更新Android Gradle插件版本以消除警告。
- 若个别依赖未迁移到公共仓库,可手动下载对应的aar包,添加为本地依赖。
内容的提问来源于stack exchange,提问作者Jurgen Tafaj
相关产品推荐
相关产品推荐

