我对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
?
干杯!
答案 0 :(得分:1)
确保使用 SHA1 键。
命令“ keytool -list -keystore [调试密钥库的路径] ”可能显示 SHA-256 键。
要获取您的 SHA1 键,请按照以下步骤操作:
答案 1 :(得分:0)
听起来您的游戏可能无法在游戏控制台中正确设置。有些事要检查:
应用程序中的appId与控制台中的app id匹配。
您的游戏中有一个链接的Android应用程序。
答案 2 :(得分:0)
答案 3 :(得分:0)
如果它可以连接并在本地版本中正常运行,但是您从Play商店下载的版本不起作用(出现登录错误),这就是解决问题的方法。上载APK时,您将SHA1用于上载版本。上载APK后,Google会为您提供其他SHA1。 您需要将此NEW SHA1输入到您的凭证中。
请按照以下步骤操作:
现在一切正常!我不明白为什么没有对此进行明确记录。
答案 4 :(得分:0)
即使问了最初的问题已经四年了,我还是想增加我的2c值,因为我遇到了同样的问题,上述建议都没有为我解决。
为我解决的问题是,意识到将应用程序发布到Google Play商店时需要使用SHA1指纹,而在进行调试时则需要另外一个指纹。第一个会在您在Google Play控制台中设置您的应用时自动创建,并且是唯一的,但直到您发布应用后才会使用。您必须创建自己的调试程序,所有要调试的应用程序都相同。凭据的详细信息存储在您的Google API控制台中。
总而言之,您使用Google Play服务的每个应用在Google API控制台中都应具有两个OAuth客户端ID,一个用于调试,一个用于发行版本。在文档here中对此进行了充分的说明。
答案 5 :(得分:0)
我的情况是我使用了错误的 SHA1,因为谷歌为我创建了一个。我谷歌控制台,当你打开一个应用程序/游戏去
sudo apt install adb
在这里您会看到“应用签名密钥证书”和“上传密钥证书”。 当我从“应用签名密钥证书”添加 SHA1 时,sing 开始工作。