问题现象

最近集成华为提供的HMS SDK能力时,无法登录,调用华为提供的getCurrentPlayer接口总是报错6004。日志搜索hmssdk,报错如下:

Line 291: I/HMSSDK_HmsClient: receive msg status_code:0, error_code6004, api_name:game.getCurrentPlayer

在这里插入图片描述

搜索官网错误码介绍,显示该错误码表示:权限不存在,未在华为开发者联盟上申请。

解决方案

既然报错原因是没有在开发者联盟上申请相关权限,因此我先参考服务和API开通文档检查了下当前开启的API权限情况,截图如下:
在这里插入图片描述

应用中涉及的服务,我的项目都已经开启了。所以这里我的权限已经启动。这里百思不得其解,最后联系了华为技术支持定位。他们给的方案如下:

  • 如果没有启动,需要先开启,等待约15分钟后,测试手机上将HMS Core缓存清理后,客户端测试看是否OK。
  • 如果已经启动,这个有可能(极小概率出现)是因为当时API开启时,出现了某种异常,导致华为后台系统没有收到这个API开启的同步消息,可以界面手动关闭下这个API开关,再重新打开,触发消息再次同步。同样需要将HMS Core缓存清理后,等待15分钟后测试。

清理HMS Core缓存方法为:手机设置>应用>应用管理>HMS Core>存储>清空缓存。

最后,果然通过关闭后重新开启的方式,我的游戏可以正常登录了。


原文链接:
https://developer.huawei.com/consumer/cn/forum/topic/0204393665510820125?fid=18
作者:鼓楼赵又廷


华为开发者论坛
352 声望56 粉丝

华为开发者论坛是一个为开发者提供信息传播、开发交流、技术分享的交流空间。开发者可以在此获取技术干货、华为源码开放、HMS最新活动等信息,欢迎大家来交流分享!