我已经测试了 ButtonClicker 2000 示例并且效果很好。现在,我正在尝试将 Google 游戏服务实现到另一款游戏中,但出现了一些错误:
06-06 12:30:46.353: D/BaseGameActivity(7982): isGooglePlayServicesAvailable returned 0
06-06 12:30:46.353: D/BaseGameActivity(7982): beginUserInitiatedSignIn: starting new sign-in flow.
06-06 12:30:46.416: D/BaseGameActivity(7982): Connecting GamesClient.
06-06 12:30:46.424: D/BaseGameActivity(7982): onStart.
06-06 12:30:46.424: D/BaseGameActivity(7982): onStart: connecting clients.
06-06 12:30:46.424: D/BaseGameActivity(7982): Connecting GamesClient.
06-06 12:30:46.424: E/GmsClient(7982): Calling connect() while still connected, missing disconnect().
06-06 12:30:46.713: D/BaseGameActivity(7982): onConnectionFailed: result 4
06-06 12:30:46.713: D/BaseGameActivity(7982): onConnectionFailed: since user initiated sign-in, trying to resolve problem.
06-06 12:30:46.713: D/BaseGameActivity(7982): resolveConnectionResult: trying to resolve result: ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{41692200: android.os.BinderProxy@416921a0}}
06-06 12:30:46.713: D/BaseGameActivity(7982): result has resolution. Starting it.
06-06 12:30:46.900: D/BaseGameActivity(7982): onActivityResult, req 9001 response 0
06-06 12:30:46.900: D/BaseGameActivity(7982): responseCode != RESULT_OK, so not reconnecting.
06-06 12:30:46.900: D/BaseGameActivity(7982): giveUp: giving up on connection. Status code: 4
06-06 12:30:46.900: D/BaseGameActivity(7982): Making error dialog for error: 4
com.google.android.gms 记录以下错误:
E/SignInActivity(7432): SignInActivity must be started with startActivityForResult
我做了什么:
- 我已经正确配置了开发者控制台端。 SHA1 正确(与 androiddebug keystore 匹配)。
- 在 API 控制台中,一切看起来都很好。
- 我扩展了 GameBaseActivity 并实现了请求的接口(interface)。
- 我在 values 文件夹中有一个 ids.xml,它与 Developer Console 中的匹配。
- 我已经覆盖了请求的方法,包括 onActivityResult()
list 也可以,它包含请求的元数据。
这是我在 onCreate 中用来登录的代码:
setSignInMessages("SIGNING IN", "SIGNING OUT"); beginUserInitiatedSignIn();
在测试示例 Button Clicker 2000 时,我也遇到了未知错误并修复了它,正确配置了仪表板。当前的游戏仪表板也配置正确,所以我真的不知道发生了什么。 我错过了什么?
编辑:
- 我还尝试打开 BaseGameActivity 并实现 GameHelper 直接在我的主要 Activity 中。
- 我尝试发布应用游戏设置(因为该游戏已在 Play 商店中发布)。将另一个应用程序与我的发布签名 SHA1 key 相关联。设置为主应用程序进行安装。仍然没有运气。
最佳答案
这真的很奇怪。根据您的 BaseGameActivity 日志,您遇到的错误不应发生。
SignInActivity 在代码中确实不可见,因为您通过调用 GameHelper.resolveConnectionResult
启动它,这将调用 mConnectionResult.startResolutionForResult(mActivity, RC_RESOLVE)
。那是 mConnectionResult
,它具有将启动 SignInActivity
的 Intent。 BaseGameActivity 的日志显示您正在正确启动它,因此除非您对 BaseGameActivity 和 GameHelper 进行了一些更改,否则错误很奇怪。
您在哪里查找错误?在你的包过滤器中?真正有用的信息显示在 LogCat 中,但不在您的应用程序过滤器中。在 LogCat 中查找所有没有过滤器的消息,然后搜索标签 Volley 和 GameAgent。它可能会向您显示一些错误。
还有一件事:登录对话框是否仍然显示?何时显示 SignInActivity 错误(时间戳)?
关于android - BaseGameUtils 未知错误,onConnectionFailed : result 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16960207/