React Native 0.72.8安卓构建依赖解析失败求助(iOS正常)
安卓构建依赖解析失败解决方案(RN 0.72.8 + M1)
核心问题定位
报错本质是依赖版本冲突:第三方库使用com.facebook.react:react-native:+的模糊版本要求,与项目锁定的RN 0.72.8版本不兼容,同时gradle依赖解析时无法正确找到react-android、hermes-android的对应版本。
分步解决步骤
1. 强制统一RN依赖版本
在android/build.gradle的allprojects块中添加版本强制策略,让所有第三方依赖使用项目指定的RN 0.72.8版本:
allprojects { repositories { // 保持原有仓库配置... } // 添加以下配置 configurations.all { resolutionStrategy { force "com.facebook.react:react-native:0.72.8" force "com.facebook.react:react-android:0.72.8" force "com.facebook.react:hermes-android:0.72.8" } } }
2. 修正gradle仓库配置
确保android/build.gradle的allprojects.repositories包含RN本地依赖仓库,避免远程仓库版本缺失:
allprojects { repositories { mavenCentral() google() // RN本地依赖仓库 maven { url("$rootDir/../node_modules/react-native/android") } maven { url("$rootDir/../node_modules/jsc-android/dist") } // 其他第三方仓库(如jitpack等)... } }
3. 清理缓存并重新安装依赖
执行以下命令彻底清理缓存,避免残留的旧依赖干扰:
# 清理node_modules和锁文件 rm -rf node_modules package-lock.json yarn.lock npm install # 清理安卓构建缓存 cd android && ./gradlew clean cd ..
M1设备若仍有架构兼容问题,可尝试用Rosetta执行gradle命令:arch -x86_64 ./gradlew clean
4. 检查依赖树并修复冲突
运行命令查看RN依赖树,找出强制使用其他RN版本的第三方库:
npm ls react-native
针对冲突的第三方库,要么升级到兼容RN 0.72.8的版本,要么降级到适配的旧版本。
5. 验证gradle与环境配置
- 确认
android/gradle/wrapper/gradle-wrapper.properties中的gradle版本与RN 0.72.8兼容(推荐gradle 7.5):distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip - 检查环境变量:
JAVA_HOME指向OpenJDK 17,ANDROID_HOME指向正确的Android SDK路径,可通过以下命令验证:echo $JAVA_HOME echo $ANDROID_HOME
6. 确认Hermes配置(若启用)
如果项目使用Hermes,确保android/app/build.gradle和settings.gradle配置正确:
- 在
android/app/build.gradle中启用Hermes:project.ext.react = [ enableHermes: true ] // ... dependencies { implementation project(':react-native-hermes') // ... } - 在
settings.gradle中添加Hermes模块:include ':react-native-hermes' project(':react-native-hermes').projectDir = new File(rootProject.projectDir, '../node_modules/react-native/hermes-engine/android')
内容的提问来源于stack exchange,提问作者profundusman
相关产品推荐
相关产品推荐

