【问题标题】:Google play leaderboard - unable to submit scoresGoogle play 排行榜 - 无法提交分数
【发布时间】:2017-10-13 14:07:01
【问题描述】:

我最近在我的应用中实现了一个 google play services 排行榜,但发现它没有提交分数。

我有一个来自 MainActivity 的 GoogleApiClient 实例,它被声明为静态以用于其他活动。访问排行榜的代码在 MainActivity 中。

public static GoogleApiClient apiClient = apiClient = new GoogleApiClient.Builder(this)
                .addApi(Games.API)
                .addScope(Games.SCOPE_GAMES)
                .enableAutoManage(this, new GoogleApiClient.OnConnectionFailedListener() {
                    @Override
                    public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
                        Toast.makeText(MainActivity.this, "Failed to connect to google play", Toast.LENGTH_LONG).show();
                    }
                })
                .build();

提交分数的代码位于从第二个活动的 onActivityResult 调用的方法中(一次在 onCreate 中进行测试)。因为在onActivity结果中,googleApiClient并没有立即连接,如果我直接更新会导致失败,所以我做了这样的事情:

MainActivity.apiClient.registerConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() {
            @Override
            public void onConnected(@Nullable Bundle bundle) {
                PendingResult r = Games.Leaderboards.submitScoreImmediate(MainActivity.apiClient,
                        getString(R.string.leaderboard_most_stars),
                        totalStars);
                ResultCallback callback = new ResultCallback()
                {
                    @Override
                    public void onResult(@NonNull Result result) {}
                };
                r.setResultCallback(callback);
            }

            @Override
            public void onConnectionSuspended(int i) {

            }
        });

但由于某种原因未能提交分数。排行榜加载,只显示不得分。

奇怪的是,它在测试帐户的模拟器上运行良好。

谁能帮忙指出错误?

【问题讨论】:

  • 你有没有试过检查Result,看看有没有线索?
  • 它确实在模拟器上工作,我确实检查了 Log 和 toasts,它符合预期。只是由于某种原因无法在真实设备上运行

标签: android google-play-services


【解决方案1】:

如果您尚未这样做,请检查并确保您已正确提供了签名证书的 SHA-1。请注意,发布证书指纹与调试证书指纹不同。

来自Authenticating Your Client

获取发布证书指纹:

keytool -exportcert -list -v \
-alias <your-key-name> -keystore <path-to-production-keystore>

获取调试证书指纹(适用于 Windows):

keytool -exportcert -list -v \
-alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore

除此之外,我建议您还考虑查看Quality Checklist for Google Play Games Services,尤其是sign-inleaderboards

【讨论】:

  • 嗯,到目前为止,我从未在终端上做过任何事情。我试过了,但它说密钥库存在于该位置但为空。另外,我目前不满足清单中的所有登录要求(没有手动登录。这是一个原因吗?
猜你喜欢
  • 2019-10-10
  • 2014-03-22
  • 2013-06-22
  • 1970-01-01
  • 2016-08-29
  • 2016-08-14
  • 2018-02-07
  • 1970-01-01
  • 2017-02-24
相关资源
最近更新 更多