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

求助:Firebase出现重复类FirebaseInstanceIdReceiver依赖冲突问题

解决FCM依赖冲突:重复类FirebaseInstanceIdReceiver问题

问题根源

从Firebase Messaging 21.0.0版本开始,独立的firebase-iid库已经被合并到firebase-messaging核心库中。你的项目同时引入了旧版独立firebase-iid:20.1.5和新版firebase-messaging:23.1.1,导致两个库包含相同的com.firebase.iid.FirebaseInstanceIdReceiver类,引发冲突。

解决步骤

1. 移除独立的firebase-iid依赖

打开模块级build.gradle文件,找到并删除单独引入的com.google.firebase:firebase-iid:20.1.5依赖项——新版firebase-messaging已经包含了该库的所有功能,无需单独引入。

2. 统一Firebase Messaging版本

确保firebase-messaging使用兼容的稳定版本,并且和项目中其他Firebase组件版本保持一致。示例配置:

dependencies {
    // 仅保留firebase-messaging依赖
    implementation 'com.google.firebase:firebase-messaging:23.1.1'
    // 其他Firebase组件版本需与messaging匹配
    implementation 'com.google.firebase:firebase-core:21.1.1'
}

3. 强制统一Firebase组件版本(可选)

如果项目包含多个Firebase组件,为避免版本不一致引发的潜在问题,可在项目根目录的build.gradle中添加版本统一规则:

buildscript {
    dependencies {
        // 使用最新版Google Services插件
        classpath 'com.google.gms:google-services:4.3.15'
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
    configurations.all {
        resolutionStrategy {
            // 强制所有Firebase组件使用指定版本
            force 'com.google.firebase:firebase-messaging:23.1.1'
            force 'com.google.firebase:firebase-core:21.1.1'
        }
    }
}

4. 清理缓存并重构项目

执行以下操作确保旧依赖缓存被清除:

  • 在Android Studio中点击File > Invalidate Caches... > Invalidate and Restart
  • 或在终端运行命令:
./gradlew clean build

额外排查(若问题仍存在)

如果冲突依旧,检查是否有第三方依赖间接引入了旧版firebase-iid。可通过终端命令查看完整依赖树:

./gradlew dependencies

找到引入旧版firebase-iid的依赖后,使用exclude规则移除:

implementation('第三方依赖组:依赖名称:版本') {
    exclude group: 'com.google.firebase', module: 'firebase-iid'
}

内容的提问来源于stack exchange,提问作者Vishal P

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 15:37:33