React Native构建Release版本时JCenter元数据获取失败
React Native Release构建失败:无法从JCenter获取依赖元数据
错误详情
FAILURE: Build failed with an exception. * 出错原因: 无法确定任务 ':react-native-community_clipboard:verifyReleaseResources' 的依赖项。 > 无法解析配置 ':react-native-community_clipboard:releaseRuntimeClasspath' 的所有任务依赖项。 > 无法解析 com.facebook.react:react-native:+。 被以下项目依赖: project :react-native-community_clipboard > 无法列出 com.facebook.react:react-native 的版本。 > 无法从 https://jcenter.bintray.com/com/facebook/react/react-native/maven-metadata.xml 加载Maven元数据。 > 无法GET 'https://jcenter.bintray.com/com/facebook/react/react-native/maven-metadata.xml'。 > 读取超时 * 建议尝试: > 使用 --stacktrace 参数获取堆栈跟踪信息。 > 使用 --info 或 --debug 参数获取更多日志输出。 > 使用 --scan 参数获取完整分析信息。
核心问题:Release构建阶段,react-native-community_clipboard库尝试从已停止服务的JCenter仓库拉取com.facebook.react:react-native的元数据,请求超时导致依赖解析失败。
解决方案
替换JCenter仓库为可用仓库
打开项目根目录的android/build.gradle,找到allprojects下的repositories块,移除jcenter(),添加mavenCentral():allprojects { repositories { mavenCentral() mavenLocal() google() maven { url "$rootDir/../node_modules/react-native/android" } maven { url "$rootDir/../node_modules/jsc-android/dist" } } }锁定react-native固定版本
在android/build.gradle的buildscript块中,明确指定项目使用的react-native版本(替换为你实际的版本号,如0.72.0):buildscript { ext { buildToolsVersion = "33.0.0" minSdkVersion = 21 compileSdkVersion = 33 targetSdkVersion = 33 reactNativeVersion = "0.72.0" } // 其他配置不变 }同时在
app/build.gradle中确保依赖使用固定版本:dependencies { implementation "com.facebook.react:react-native:${reactNativeVersion}" // 其他依赖不变 }升级clipboard库到最新版本
旧版@react-native-community/clipboard可能依赖JCenter,迁移到维护中的新版本:npm uninstall @react-native-community/clipboard npm install @react-native-clipboard/clipboard安装完成后同步项目依赖,重新执行构建。
配置国内镜像源(网络问题时)
如果网络访问仓库受限,在android/build.gradle的repositories中添加国内镜像:maven { url 'https://maven.aliyun.com/repository/public/' } maven { url 'https://maven.aliyun.com/repository/google/' }
内容的提问来源于stack exchange,提问作者ManojK
相关产品推荐
相关产品推荐

