BaseGameUtils未知错误,onConnectionFailed:result 4

我已经testing过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.gmslogging以下错误:

 E/SignInActivity(7432): SignInActivity must be started with startActivityForResult 

我做了什么:

  • 我正确configuration了开发者控制台端。 SHA1是正确的(匹配androiddebug密钥库)。
  • 在API控制台中一切都很好。
  • 我扩展了GameBaseActivity并实现了所需的接口。
  • 值文件夹中的ids.xml与Developer Console中的相匹配。
  • 我已经覆盖了请求的方法,包括onActivityResult()
  • 清单也可以,它包含了所请求的元数据。

  • 这是我用来在onCreate上login的代码:

     setSignInMessages("SIGNING IN", "SIGNING OUT"); beginUserInitiatedSignIn(); 

在testing示例Button Clicker 2000时,我也遇到了“未知错误”,并且正确地configuration了仪表板。 当前的游戏仪表板也configuration正确,所以我真的不知道发生了什么事情。 我错过了什么?

编辑:

  • 我也尝试解开BaseGameActivity,并直接在我的主Activity中实现GameHelper。
  • 我尝试发布应用程序游戏设置(因为这个游戏已经发布在Play商店)。 使用我的发布签名SHA1密钥链接另一个应用程序。 设置为安装的主要应用程序。 仍然没有运气。

Solutions Collecting From Web of "BaseGameUtils未知错误,onConnectionFailed:result 4"

真奇怪 你得到的错误,取决于你的BaseGameActivity日志不应该发生。

SignInActivity实际上在代码中是不可见的,因为你通过调用GameHelper.resolveConnectionResult来启动它,它将调用mConnectionResult.startResolutionForResult(mActivity, RC_RESOLVE) 。 这是具有将启动SignInActivity的Intent的mConnectionResult 。 而且BaseGameActivity的日志是说你正确地开始它,所以除非你在BaseGameActivity和GameHelper中做了一些改变,否则这个错误是很奇怪的。

你在哪里寻找错误? 在你的包filter? 真正有用的信息显示在LogCat中,但不在您的应用程序filter中。 在LogCat中查找没有filter的所有消息,并search标签Volley和GameAgent。 它可能会显示一些错误。

还有一件事:SignIn对话框显示了吗? 什么时候显示SignInActivity错误(时间戳)?

错误非常明显:

 E/SignInActivity(): SignInActivity must be started with startActivityForResult 

这意味着SignInActivity正在使用startActivity而不是startActivityForResult启动。

search此活动正在开始的位置并更改为startActivityForResult。 如果你张贴了一些代码,我将能够帮助更多!

根据你的错误,你连接gamehelper两次(也许在你的oncreate?),它返回错误状态4.你不给代码,但我相信我知道你的问题是什么。 您可能正在使用GamesClient.connectloginGoogle。在连接游戏客户端之前先等待Google帐户login。 我做了

 public void onSignInSucceeded() { mGamesClient.connect();} 

你可以在你的onCreate中创buildGamesClient对象,但是连接最好放在我给你的这个方法中。 我花了几个小时来解决这个问题,希望我能帮上忙

问题:

ConnectionResult {statusCode = SIGN_IN_REQUIRED,resolution = PendingIntent {#:android.os.BinderProxy@#}}

解决:

 @Override public void onConnectionFailed(ConnectionResult arg0) { <Your Code...> try { arg0.startResolutionForResult(this, 9001); } catch (SendIntentException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 

这只是一个粗略的演示,按照google的build议来处理ConnectionResult。

欲了解更多信息点击这里