Android 10调用FirebaseMessaging.getToken()报INVALID_TARGET_VERSION错误如何解决
问题原因
- 你使用的
com.google.firebase:firebase-bom:28.4.2是2021年发布的过时版本,该版本内置的Firebase Messaging依赖已废弃的Firebase Instance ID(IID)服务,Google官方已停止对旧版IID接口的服务支持,FCM服务端会直接拒绝来自旧版本SDK的请求,返回INVALID_TARGET_VERSION错误。 - 应用设置的
targetSdkVersion过低,不符合FCM服务端的版本校验要求也会触发该报错。 - 测试设备预装的Google Play服务版本过低,无法和FCM服务端完成正常交互同样可能触发该错误。
解决步骤
- 升级Firebase BOM到最新稳定版本,依赖项修改为如下配置,不需要指定messaging和analytics的单独版本,由BOM统一管理即可:
implementation platform('com.google.firebase:firebase-bom:32.8.1') // 可替换为官方最新发布的稳定版号 implementation 'com.google.firebase:firebase-messaging' implementation 'com.google.firebase:firebase-analytics'
- 确认应用级
build.gradle文件中的targetSdkVersion不低于30,符合FCM服务端的版本校验规则。 - 清理项目缓存后重新构建:依次执行Android Studio菜单栏的
Build -> Clean Project、Build -> Rebuild Project,避免旧版本依赖缓存残留。 - 测试设备升级Google Play服务到最新版本:Android 10设备可进入系统设置 -> 应用管理 -> 找到Google Play服务,检查更新并安装最新版。
- 原有业务逻辑不需要修改,
FirebaseMessaging.getInstance().getToken()和订阅主题的代码在新版SDK中可正常运行。
内容的提问来源于stack exchange,提问作者user7324968
相关产品推荐
相关产品推荐

