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

FirebaseMessagingService中onMessageReceived重写无匹配方法错误排查

解决FirebaseMessagingService中onMessageReceived overrides nothing错误

我之前也碰到过一模一样的问题,结合你的代码和参考场景,来帮你梳理问题原因和解决办法:

问题原因

核心问题是方法签名不匹配,导致IDE无法识别这是重写父类的方法,常见两种触发场景:

  1. 参数可空性不一致:新版本的Firebase Messaging库中,FirebaseMessagingService的onMessageReceived方法参数已经从可空的RemoteMessage?改成了非空的RemoteMessage,你的代码沿用了旧的可空参数定义,所以IDE判定这不是重写方法。
  2. 依赖版本不匹配:如果你的firebase-messaging依赖版本和参考示例的版本差异较大,父类方法的定义可能发生了变更,直接导致签名不匹配。

解决方法

1. 修正方法参数的可空性

把onMessageReceived的参数从RemoteMessage?改为RemoteMessage,同时调整内部代码的空安全处理(因为参数现在是非空的),修改后的代码如下:

class SubscriptionMessageService : FirebaseMessagingService() {
    companion object {
        private val TAG = SubscriptionMessageService::class.java.simpleName
        private const val REMOTE_MESSAGE_SUBSCRIPTIONS_KEY = "currentStatus"
    }

    override fun onMessageReceived(remoteMessage: RemoteMessage) {
        remoteMessage.data.let { data ->
            if (data.isNotEmpty()) {
                val result = data[REMOTE_MESSAGE_SUBSCRIPTIONS_KEY]?.let { 
                    SubscriptionStatus.listFromJsonString(it) 
                }
                if (result == null) {
                    Log.e(TAG, "Invalid subscription data")
                } else {
                    val app = application as SubApp
                    app.repository.updateSubscriptionsFromNetwork(result)
                }
            }
        }
    }
}

2. 同步Firebase依赖版本

检查你项目中app/build.gradle里的firebase-messaging依赖版本,确保和参考示例的版本一致(或者使用官方最新稳定版)。比如可以在依赖块中添加/修改:

implementation 'com.google.firebase:firebase-messaging:23.4.0'

(注:可以根据Firebase官方文档替换为最新的稳定版本号)

3. 清理IDE缓存并重建项目

有时候IDE的缓存会导致错误识别,执行以下操作可以解决:

  • 点击菜单栏的 Build -> Clean Project
  • 然后执行 Build -> Rebuild Project
  • 如果问题仍存在,试试 File -> Invalidate Caches... -> Invalidate and Restart

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:47:34