问题描述
集成华为游戏 SDK 6.1.0.301 版本,接入排行榜功能,分数提交成功后,直接展示应用助手的排行榜列表页面点进去,提示“无法连接服务器,请点击屏幕重试”。
问题分析
我在网上搜了下,发现这个帖子中有提到相同的现象:华为HMS游戏排行榜请求报错HTTP 502
按照上面的引导我做了检查,但是排行榜列表仍然不正确显示,还是提示“无法连接服务器”。
然后我就去咨询了华为的技术支持(可以提交工单),对方让我先复现一遍问题,同时取全量日志。日志中搜索关键词“HwJos”,发现报错8001了,同时也能看到 hasGameServiceLiteScope 这个是 false,isSupportJos 也是 false。这几个错误都表示应用是是非联运的,不支持公告功能,而直接展示应用助手的排行榜列表页面走的是公告的代码逻辑。也就是说,因为我们游戏不是联运的,所以才不展示排行榜列表。
但是我比较疑惑,我都是按照文档去接入的 SDK,一个新游戏,是怎么判定我的游戏为非联运的呢?华为技术从日志中看到的我们的包名不符合联运要求,现在联运游戏在创建应用的时候,包名必须要以“.huawei”或者“.HUAWEI”结尾,而我的不是。应该就是这个原因导致游戏被判定为非联运了。
问题解决
由于华为包名不支持修改,我重新创建了应用,用“.huawei”做后缀,获取了新的一套参数,替换到工程里,重新运行测试,查看排行榜列表,能看到具体分数了。
游戏排行榜功能接入指导文档:游戏排行榜