You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装@react-native-firebase/app后React Native应用构建失败求助

React Native 0.70.0 集成 @react-native-firebase/app ^18.0.0 构建失败排查与解决

问题背景

在React Native 0.70.0项目中安装@react-native-firebase/app(版本^18.0.0)后,Android构建失败,提示类重复冲突错误。

相关配置信息

package.json 依赖

"@react-native-firebase/app": "^18.0.0",
"react-native": "0.70.0"

build.gradle 依赖项

implementation project(':react-native-pusher-push-notifications') 
implementation 'com.pusher:push-notifications-android:1.9.0'
implementation ("com.google.firebase:firebase-iid:21.1.0")
implementation ("com.google.firebase:firebase-messaging:23.0.0")
implementation 'androidx.multidex:multidex:2.0.1'

构建错误日志

* What went wrong:
Execution failed for task ':app:checkDebugDuplicateClasses'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
   > Duplicate class com.google.android.gms.internal.measurement.zzdu found in modules jetified-firebase-analytics-impl-16.1.1-runtime (com.google.firebase:firebase-analytics-impl:16.1.1) and jetified-play-services-measurement-sdk-api-21.3.0-runtime (com.google.android.gms:play-services-measurement-sdk-api:21.3.0)
     Duplicate class com.google.android.gms.internal.measurement.zzdv found in modules jetified-firebase-analytics-impl-16.1.1-runtime (com.google.firebase:firebase-analytics-impl:16.1.1) and jetified-play-services-measurement-sdk-api-21.3.0-runtime (com.google.android.gms:play-services-measurement-sdk-api:21.3.0)
     Duplicate class com.google.android.gms.internal.measurement.zzdw found in modules jetified-firebase-analytics-impl-16.1.1-runtime (com.google.firebase:firebase-analytics-impl:16.1.1) and jetified-play-services-measurement-sdk-api-21.3.0-runtime (com.google.android.gms:play-services-measurement-sdk-api:21.3.0)
     Duplicate class com.google.android.gms.internal.measurement.zzdx found in modules jetified-firebase-analytics-impl-16.1.1-runtime (com.google.firebase:firebase-analytics-impl:16.1.1) and jetified-play-services-measurement-sdk-api-21.3.0-runtime (com.google.android.gms:play-services-measurement-sdk-api:21.3.0)
     Duplicate class com.google.android.gms.internal.measurement.zzdy found in modules jetified-firebase-analytics-impl-16.1.1-runtime (com.google.firebase:firebase-analytics-impl:16.1.1) and jetified-play-services-measurement-sdk-api-21.3.0-runtime (com.google.android.gms:play-services-measurement-sdk-api:21.3.0)
     Duplicate class com.google.android.gms.internal.measurement.zzdz found in modules jetified-firebase-analytics-impl-16.1.1-runtime (com.google.firebase:firebase-analytics-impl:16.1.1) and jetified-play-services-measurement-sdk-api-21.3.0-runtime (com.google.android.gms:play-services-measurement-sdk-api:21.3.0)
     Duplicate class com.google.android.gms.internal.measurement.zzea found in modules jetified-firebase-analytics-impl-16.1.1-runtime (com.google.firebase:firebase-analytics-impl:16.1.1) and jetified-play-services-measurement-sdk-api-21.3.0-runtime (com.google.android.gms:play-services-measurement-sdk-api:21.3.0)
     Duplicate class com.google.android.gms.internal.measurement.zzeb found in modules jetified-firebase-analytics-impl-16.1.1-runtime (com.google.firebase:firebase-analytics-impl:16.1.1) and jetified-play-services-measurement-sdk-api-21.3.0-runtime (com.google.android.gms:play-services-measurement-sdk-api:21.3.0)

原因分析

  1. 依赖版本冲突:@react-native-firebase/app 18.x版本依赖的Firebase库版本较高,而手动添加的firebase-iid:21.1.0、firebase-messaging:23.0.0版本过低;同时react-native-pusher-push-notifications依赖拉取了旧版本的firebase-analytics-impl:16.1.1,与新版play-services-measurement-sdk-api:21.3.0产生类重复。
  2. 手动依赖冗余:@react-native-firebase/app已自动引入所需Firebase核心依赖,手动添加firebase-iid和firebase-messaging属于冗余操作,反而引发版本不匹配。

解决方案

1. 移除冗余的手动Firebase依赖

修改build.gradle,删除以下两行:

implementation ("com.google.firebase:firebase-iid:21.1.0")
implementation ("com.google.firebase:firebase-messaging:23.0.0")

若需使用推送功能,直接安装@react-native-firebase/messaging包即可,它会自动匹配对应Firebase依赖版本。

2. 统一Firebase依赖版本(使用Firebase BOM)

在项目根目录build.gradle中添加Firebase BOM,确保所有Firebase依赖版本一致:

buildscript {
    dependencies {
        classpath 'com.google.gms:google-services:4.3.15'
        classpath 'com.google.firebase:firebase-bom:32.2.0' // 适配RN Firebase 18.x的版本
    }
}

在app模块build.gradle中通过BOM引入依赖:

dependencies {
    implementation platform('com.google.firebase:firebase-bom:32.2.0')
    implementation 'com.google.firebase:firebase-messaging'
    // 其他保留依赖...
}

3. 排除Pusher依赖中的旧Firebase模块

若升级Pusher依赖后仍有冲突,在build.gradle中排除旧Firebase分析模块:

implementation project(':react-native-pusher-push-notifications') {
    exclude group: 'com.google.firebase', module: 'firebase-analytics-impl'
}
implementation 'com.pusher:push-notifications-android:1.9.0' {
    exclude group: 'com.google.firebase', module: 'firebase-analytics-impl'
}

4. 清理缓存并重新构建

执行命令清理gradle缓存,避免旧依赖残留:

./gradlew clean
cd android && ./gradlew clean && cd ..
npx react-native run-android

内容的提问来源于stack exchange,提问作者Firas Abu Fares

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 08:40:04