Google Play 游戏服务登录按钮吐出“未知错误”

Posted

技术标签:

【中文标题】Google Play 游戏服务登录按钮吐出“未知错误”【英文标题】:Google Play Game Services sign in button spits "Unknown error" 【发布时间】:2013-05-16 22:25:03 【问题描述】:

我正在尝试在我的 android 练习应用中使用 Google Play 游戏服务。

我得到了开发人员指南中所述的登录按钮 UI。当我第一次登录时,它会引导我完成登录过程。在它即将完成该过程之后,它会给我一个带有“未知错误”的对话框。在第一次之后,它总是在显示加载动画一段时间后给我这个对话框。

我导入了 BaseGameUtils 和 google-play-services_lib。我将 BaseGameUtils 的引用附加到 google-play-services_lib。然后将这两个的参考附加到我的游戏项目中。

我导出了项目以获取 SHA1 以放入开发者控制台。然后我将我的 12 位应用程序 ID 放在 values/ids.xml 上(在应用程序下获取元标记)。

尝试清理项目,重做 SHA1/keystore 过程,但没有运气。我的电子邮件正在测试访问中。

我阅读并尝试了针对此问题提供的解决方案,但不是我的情况。

Google Play Game Services - unable to sign in

有没有人遇到过同样的情况,或者有人有我应该尝试的解决方案吗?

【问题讨论】:

您可以在 BaseGameUtils 上启用日志并查看所有日志以了解发生了什么!那里有一个布尔标志来启用它! 我遇到了同样的问题。试图重新创建应用程序令牌等......一遍又一遍,但无法让它工作。在 LogCat 中,我看到以下错误消息:05-26 09:38:31.494: E/Volley(9154): [524] il.a: Unexpected response code 401 for googleapis.com/games/v1/players/me 05-26 09:38:31.724: W /dqi(9154):身份验证错误:无法响应以下任何质询:bearer=WWW-Authenticate: Bearer realm="google.com/accounts/AuthSubRequest", error=invalid_token 您是否在控制台中创建了测试帐户? 【参考方案1】:

尝试转到您设备上的 Google+ 设置并清除您授予该应用的访问权限。之后,通过 PC/Mac 网络浏览器或您的设备为您的测试帐户手动设置 Google+,然后尝试重新链接该应用程序。这对我有用。

三星 Galaxy S3 的具体步骤:

设置 -> Google -> Google+ -> 使用 Google+ 登录的应用 -> 点击应用,然后在底部点击断开应用。

不管怎样,当我删除它时,我还点击了“删除此应用的所有活动”选项。

【讨论】:

今天我遇到了同样的问题,我最终解决它的方法和你说的一样。 它对我也有帮助(-:我已经安装了新版本的游戏,但设备无法登录应用程序(游戏)。我按照上面的说明断开了连接应用程序在我的设备上。然后,我通过我的游戏再次像新用户一样连接。它有效。谢谢【参考方案2】:

您的 ids.xml 必须如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_id">XXXXXXXXX</string>
</resources>

而且,在您的清单中,您必须添加:

    <meta-data android:name="com.google.android.gms.games.APP_ID"
    android:value="@string/app_id" />

祝你好运!

【讨论】:

但是字符串中 app_id 的值应该是多少?它应该是您在开发控制台上创建的客户端 ID 还是应用程序的名称或应用程序的包名称?干杯:) 好的,所以应用 ID 是 clientID 开头的 12 位数字,也可以在开发控制台中的 Google Play 游戏服务游戏顶部看到 是的,这就是我的 ids.xml 中的内容。谢谢。【参考方案3】:

我建议使用 GameHelper 类中的调试日志跟踪来更清楚地了解错误。您可以简单地在 onCreate 中调用来执行此操作...

enableDebugLog(true, "fred");其中“fred”是您要在 logcat 上显示的标签

您很可能会看到类似“OnConnection Failed result 4... SIGN IN REQUIRED。如果您随后搜索该消息,您应该能够取得一些进展。

另一种可能性:

我昨晚成功地将自己的排行榜投入生产。您描述的错误是我(并且根据我在 SO 错误报告中看到的其他 cmets 判断)和其他人也遇到过的错误。我发现我无法使用我在开发者控制台中使用的 google 帐户登录,即使它被明确列为游戏的测试帐户。我尝试关闭模拟器,在开发者控制台中删除和重新定义游戏等,但我一直无法让它工作。

我使用了其他帐户并且能够登录。我不知道我的开发者控制台帐户有什么问题 - 我也在 Google Plus 中使用它而没有问题。顺便说一句,我仍然无法通过真实设备在生产应用上使用我的开发者帐户。

我的建议是使用单独的帐户进行测试。祝你好运!

【讨论】:

【参考方案4】:

如果您使用生产密钥库获取指纹,则需要导出并使用发布版本。否则,使用调试密钥库获取指纹。

根据https://developers.google.com/games/services/console/enabling#b_create_a_client_id - 如果使用eclipse,调试密钥库位于

~/.android/debug.keystore

还有一件事,对我来说,我无法使用我的发布商帐户登录,但我的其他帐户之一工作正常。也许值得一试。

【讨论】:

我没有尝试调试密钥库,因为我想看到发布版本工作。发布版本是导出的版本,带有导出时给出的指纹。我将应用 ID 添加回来并导出以安装在我的设备上。【参考方案5】:

可以尝试的另一件事是将导出和签名的 yourapp.apk(作为附件)发送到测试人员帐户的电子邮件,然后通过电子邮件(通过单击附件)而不是通过 USB 安装应用程序.

在我看来,这里的问题不在于播放服务,而在于 google+,因为有时更改(例如删除某些信息)需要几天才能生效。如果没有任何效果,请创建一个新的 gmail 帐户,然后重试(这最终对我来说是“有效的”:))。

编辑:最初无法使用的旧帐户在 4 到 5 天后开始使用。也许谷歌需要一些时间来同步所有内容。

【讨论】:

以上是关于Google Play 游戏服务登录按钮吐出“未知错误”的主要内容,如果未能解决你的问题,请参考以下文章

使用 Google Apps 帐户登录时,在 Android 上对 Google Play 游戏服务进行身份验证会导致错误

检测用户退出 Google Play 游戏登录

Google Play 游戏强制登录

实施 Google Play 游戏服务 - 如何让用户登录

如何避免 Google Play 游戏服务登录对话框自动提示?

登录/重试失败时的 Google Play 游戏服务怪异(活动生命周期)