华为推送获取token报错907122037/907122012如何解决?
华为推送获取Push Token报错解决方案
错误码907122012 处理方案
该错误为开启自动初始化时触发,原因均为应用配置和AppGallery Connect(AGC)后台配置不匹配,按以下步骤逐一排查:
- 检查AGC后台填写的应用包名,和项目AndroidManifest文件中配置的package完全一致,大小写、特殊字符均不能有差异
- 确认从AGC后台下载的
agconnect-services.json文件已正确放置在app模块根目录,文件内的app_id、package_name字段和实际项目配置匹配 - 确认当前打包使用的签名证书的SHA256指纹,已正确填写到AGC后台「应用信息」-「SHA256证书指纹」栏,禁止填写SHA1、MD5指纹
- 检查项目根目录和app模块的build.gradle文件,已正确配置HMS Maven仓库地址、agcp插件依赖
错误码907122037 处理方案
该错误为手动调用getToken接口触发,除完成上述所有配置检查外,还需额外排查以下内容:
- 调整getToken调用时机:禁止在Application的onCreate生命周期同步调用接口,需等HMS Core初始化完成后再调用,建议放在主Activity的onCreate回调中执行
- 检查接口调用线程:
getToken为阻塞接口,禁止在主线程直接调用,必须放到异步子线程执行,正确示例代码如下:
new Thread(() -> { try { String huaweiappid = HmsInstanceId.getInstance(context).getId(); String huaweitoken = HmsInstanceId.getInstance(context).getToken(huaweiappid, "HCM"); // 自行处理获取到的token } catch (Exception e) { e.printStackTrace(); } }).start();
- 确认测试设备的HMS Core版本已升级到最新版,版本过低会导致接口调用失败
- 如果是HarmonyOS设备,需先给应用授予「推送通知」「后台弹窗」权限后再调用接口
最终验证步骤
所有配置修改完成后,先清理项目缓存(执行Build -> Clean Project),卸载设备上已安装的旧版本应用,重新打包安装即可正常获取Push Token。
内容的提问来源于stack exchange,提问作者alexbayker
相关产品推荐
相关产品推荐

