React Native构建失败:重复类与依赖版本冲突及Gradle兼容问题
React Native构建失败问题解决方案
1. 解决com.facebook.react包重复依赖问题
- 统一RN核心版本:项目同时存在
react-native:0.69.2和react-android:0.71.3是冲突根源,建议统一升级到0.71.3版本(RN 0.69+拆分了react-android模块):- 修改
package.json中react-native版本为0.71.3 - 删除
package-lock.json/yarn.lock文件 - 重新执行
npm install或yarn install
- 修改
- 强制依赖版本(临时兼容方案):若无法直接升级,在
android/build.gradle中添加强制规则:
configurations.all { resolutionStrategy.force 'com.facebook.react:react-native:0.71.3' resolutionStrategy.force 'com.facebook.react:react-android:0.71.3' }
2. 修复:app:checkDebugDuplicateClasses任务失败
- 排除重复依赖:找到引入旧版RN的第三方库,在
android/app/build.gradle的dependencies块中排除重复模块:
dependencies { // 示例:排除某第三方库中的react-native依赖 implementation('第三方库包名') { exclude group: 'com.facebook.react', module: 'react-native' } }
- 临时禁用重复类检查:不推荐长期使用,仅作为应急方案,在
android/app/build.gradle中添加:
android { packagingOptions { pickFirst '**/com/facebook/**/*.class' } }
3. 解决ReactNativeFirebase版本不兼容警告
- 统一RNFB版本:所有
@react-native-firebase/*包必须保持相同主版本:- 升级到匹配版本:
npm install @react-native-firebase/app@17.3.0 @react-native-firebase/remote-config@17.3.0 --save - 或降级到当前app版本:
npm install @react-native-firebase/remote-config@15.7.1 --save
- 升级到匹配版本:
- 排查依赖树:用
npm ls @react-native-firebase/app查看冲突依赖来源,必要时排除:
implementation('@react-native-firebase/remote-config') { exclude group: '@react-native-firebase', module: 'app' }
4. 适配Gradle 8.0废弃特性
- 升级Gradle插件与Wrapper:
- 在
android/build.gradle中更新插件版本:buildscript { dependencies { classpath 'com.android.tools.build:gradle:8.0.2' } } - 修改
android/gradle/wrapper/gradle-wrapper.properties中的distributionUrl:distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-all.zip
- 在
- 替换废弃语法:根据构建日志提示,将
compile改为implementation,移除或替换其他废弃配置(如android.enableR8=false等)。
内容的提问来源于stack exchange,提问作者Gagan Gupta
相关产品推荐
相关产品推荐

