React Native Android构建失败:无代码变更因0.71.0-rc.0发布报错
解决React Native Android构建依赖解析错误(RN 0.71.0-rc.0发布导致)
问题现象
未修改代码的情况下,执行Android构建时出现如下错误:
error Failed to install the app. Make sure you have the Android development environment set up: Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081 FAILURE: Build failed with an exception. * Where: Build file '/Users/....../node_modules/react-native-month-year-picker/android/build.gradle' line: 115 * What went wrong: A problem occurred configuring project ':react-native-month-year-picker'. > Could not resolve all files for configuration ':react-native-month-year-picker:implementation'. > Could not resolve com.facebook.react:react-native:+. Required by: project :react-native-month-year-picker > Cannot choose between the following variants of com.facebook.react:react-native:0.71.0-rc.0: - debugVariantDefaultRuntimePublication - releaseVariantDefaultRuntimePublication All of them match the consumer attributes: - Variant 'debugVariantDefaultRuntimePublication' capability com.facebook.react:react-native:0.71.0-rc.0:
问题原因
react-native-month-year-picker的Android构建配置中,RN依赖使用了com.facebook.react:react-native:+这种动态版本匹配规则。当RN 0.71.0-rc.0(预发布版本)发布后,Gradle会拉取该最新版本,但该预发布版本的变体属性与正式版存在差异,导致Gradle无法自动选择合适的变体,从而触发依赖解析错误。
解决方案
1. 锁定RN正式版本(推荐)
在项目根目录的android/build.gradle中,添加版本强制约束,让Gradle忽略预发布版本,使用你项目当前的RN正式版本:
allprojects { repositories { // 保留原有仓库配置 mavenCentral() // ...其他仓库 } configurations.all { resolutionStrategy { // 替换成你项目实际使用的RN正式版本,比如0.70.6 force 'com.facebook.react:react-native:0.70.6' } } }
2. 临时修改第三方库依赖(仅临时应急)
找到node_modules/react-native-month-year-picker/android/build.gradle第115行,将com.facebook.react:react-native:+替换为你项目的RN具体版本号,例如:
// 原代码 implementation "com.facebook.react:react-native:+" // 修改后 implementation "com.facebook.react:react-native:0.70.6"
注意:该修改会在重新执行npm install或yarn install时被覆盖,仅作为临时解决方案。
3. 升级第三方库到兼容版本
检查react-native-month-year-picker的npm版本,如果已有适配RN 0.71+的版本,直接升级:
# npm用户 npm install react-native-month-year-picker@latest # yarn用户 yarn add react-native-month-year-picker@latest
4. 清理Gradle缓存
清理本地Gradle缓存,避免残留的预发布版本干扰构建:
cd android ./gradlew clean rm -rf ~/.gradle/caches
之后重新执行构建命令即可。
内容的提问来源于stack exchange,提问作者ZFloc Technologies
相关产品推荐
相关产品推荐

