Google Play游戏排行榜自动关闭

时间:2016-09-02 03:50:58

标签: android google-play-games

每当我尝试在我的应用中访问我的排行榜时,它们会自动关闭。但是,这些成就完美无瑕。我收到错误代码10001(RESULT_RECONNECT_REQUIRED)。来自Google Play网站

  

GoogleApiClient处于不一致状态,必须重新连接到该服务才能解决问题。使用当前连接进一步调用服务不太可能成功。

然而,重新连接不起作用。

以下是我发现为我工作的解决方案列表

  • 重新安装应用
  • 从Google Play游戏和Google Play服务中删除数据
  • 检查服务设置是否正确

我用来展示排行榜的代码是:

act.startActivityForResult(Games.Leaderboards.getAllLeaderboardsIntent(client), RC_SIGN_IN);
//act.startActivityForResult(Games.Leaderboards.getLeaderboardIntent(client, act.getString(R.string.leaderboard_progression)), RC_SIGN_IN); //Single leaderboard does not work either

非常感谢帮助!

更新1:

在onActivityResult()中尝试使用它:

System.out.println(client.getConnectionResult(Games.API));

但它只是输出:

ConnectionResult{statusCode=SUCCESS, resolution=null, message=null}

在Google API网站上,对于我的应用,它向我显示有很多4xx错误。来自http://www.websitepulse.com/kb/4xx_http_status_codes.html

  

4xx - 客户端错误

     

这组HTTP状态代码表示   请求资源包含错误的语法或无法填写   其他一些原因,大概是由于客户发送的错误   请求。除了响应HEAD请求时,服务器应该是   包括对错误情况的解释以及它是否是   临时或永久性的。这些状态代码适用于   任何请求方法。

因此,我可以假设问题是客户端问题。但我不知道可能出现什么问题。我检查了我的SHA1,应用程序ID等,并且成就正常。我还尝试将build.gradle的依赖项更新为最新版本的Play服务,但它没有修复任何内容。

2 个答案:

答案 0 :(得分:1)

所以我终于弄清楚了......虽然我之前尝试从Play游戏和Play服务中清除数据但没有成功,但我再次尝试了,它确实有效。我弄明白了为什么;最初我用过:

Games.Leaderboards.submitScore(client, act.getString(id), SCORE);

提交排行榜得分。但是,在尝试修复我的排行榜时,我正在使用:

PendingResult r = Games.Leaderboards.submitScoreImmediate(client, act.getString(id), SCORE);
ResultCallback callback = new ResultCallback()
{
    @Override
    public void onResult(@NonNull Result result)
    {
        //System.out.println(result.getStatus());
        //System.out.println(result.getStatus().getStatusMessage());
        //System.out.println(result.getStatus().hasResolution());
    }
};
r.setResultCallback(callback);

由于某种原因,这是有效的。我尝试在原始方法和新方法之间来回切换多次,在每次测试之间清除数据。排行榜仅适用于新解决方案。我不明白为什么,但我很高兴它有效。

答案 1 :(得分:0)

排行榜也存在问题。这个解决方案有助于解决我的问题,谢谢,但游戏。排行榜,submitScoreImmediate现已弃用。

或者您可以使用: -

yourLeaderboardsClient.submitScoreImmediate(LEADERBOARD_ID, SCORE); 

同样适用,不予弃用。因此,如果有人遇到这样的问题 - 你可以使用这种变体,希望它会有所帮助。