Android - “连接到Google Play”仍然提供错误代码4?

问题描述 投票:0回答:4

我对Google API和GoogleApiClient类仍然有点新意,所以我跟着this tutorial希望设置足以展示排行榜。

目前我已将此代码实施到我的游戏活动中。

public void onConnectionFailed(ConnectionResult arg0) {
    Log.d("fes", "error " + arg0.getErrorCode());
    if (!isGooglePlayIntentOpen && arg0.hasResolution()) {
        try {
            isGooglePlayIntentOpen = true;
            startIntentSenderForResult(arg0.getResolution()
                    .getIntentSender(), 10, null, 0, 0, 0);
        } catch (SendIntentException ex) {
            isGooglePlayIntentOpen = false;
            this.getApiClient().connect();
        }
    }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 10) {
        isGooglePlayIntentOpen = false;
        if (!this.getApiClient().isConnecting() && !this.getApiClient().isConnected()) {
            this.getApiClient().connect();
        }
    }
}

事实上,这确实会弹出一个小的意图,即“连接到Google Play”,然后选择一个帐户。这是预期的。

但是,每次调用onConnectionFailed时,错误代码似乎为4。

根据ConnectionResult,4表示需要登录。

是什么赋予了?即使在尝试“登录”多个帐户后,我仍然会得到相同的错误代码。我是否需要将登录结果传递给我的GoogleApiClient

干杯!

android google-api google-play-services google-play-games
4个回答
0
投票

听起来你的游戏可能无法在游戏控制台中正确设置。有些事要检查:

  1. 应用程序中的appId与控制台中的app id匹配。
  2. 您的游戏中有一个链接的Android应用程序。
  3. 链接的应用程序已将程序包配置为与AndroidManifest.xml中的程序包匹配
  4. 链接的应用程序已获得授权,其SHA1指纹与您用于签署应用程序的密钥库相匹配。
  5. 确保您用于登录的用户ID位于游戏的测试人员列表中。
  6. 如果您使用的是SavedGamesAPI,请确保它已在控制台上启用。

您可以在https://developers.google.com/games/services/android/quickstart#step_2_set_up_the_game_in_the_dev_console查看完成所有这些操作的说明


0
投票

固定。

在获得无数SIGN_IN_REQUIRED后,我设法分配了很多RESULT_APP_MISCONFIGURED

解决方案?如here所述,添加ProGuard异常非常重要。


0
投票

如果它在本地版本中连接并正常工作,但您从Play商店下载的版本不起作用(它会出现登录错误),这就是您修复它的方法。当您上传APK时,您使用SHA1作为上载版本。在您上传APK后,Google会为您提供不同的SHA1。您需要将此新SHA1输入到凭据中。

跟着这些步骤:

  1. 转到Google Developer Console
  2. 单击所有应用程序>您的应用
  3. 转到版本管理>应用程序签名
  4. 请注意,有“上载证书”和“应用程序签名证书”。
  5. 从APP SIGNING CERTIFICATE复制SHA1。 (毕竟那个keystore rigmorale,他们没有在文档中提到这个部分!)
  6. 在游戏服务中创建一个新的连接应用程序,然后从APP签署SHA1签名证书,并确保您的包裹名称是正确的。

一切都应该工作了!我不明白为什么没有清楚地记录这一点。


0
投票

虽然问了原问题已经四年了,但是我想加上我的2c值,因为我遇到了同样的问题,上述建议都没有为我解决。

为我解决的问题是,当你的应用程序已经发布到Google Play商店时,你需要为你的应用程序提供SHA1指纹,而在调试时需要另外一个指纹。第一个是在Google Play控制台中设置应用时自动创建的,并且是唯一的,但在您发布应用之前它永远不会被使用。您必须自己创建的调试,并且对于您正在调试的所有应用程序都是相同的。凭据的详细信息存储在您的Google API控制台中。

总而言之,您使用Google Play服务的每个应用都应在Google API控制台中拥有两个OAuth客户端ID,一个用于调试,另一个用于已发布版本。如何在文档here中充分解释这一点。

© www.soinside.com 2019 - 2024. All rights reserved.