调用HMS SDK接口报错6004

问题现象

最近集成华为提供的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
作者:鼓楼赵又廷

猜你喜欢

转载自blog.51cto.com/14772288/2547118