Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 谷歌游戏服务:奇怪的登录行为_Java_Android_Google Play Services - Fatal编程技术网

Java 谷歌游戏服务:奇怪的登录行为

Java 谷歌游戏服务:奇怪的登录行为,java,android,google-play-services,Java,Android,Google Play Services,最近,我在我的应用程序中添加了Google Play游戏服务支持(添加了BaseGameActivity和GameHelper),它的登录和注销工作流工作正常。在我的图形线程中,我向主活动处理程序发送消息,它调用beginUserInitiatedSignIn或signOut。当识别过程完成游戏助手对我的活动的onSignInFailed或OnSignInSucceed调用时,我可以检查isSignedIn(如果调用了OnSignInSucceed,则为true) 但今天我发现它现在的行为很奇怪

最近,我在我的应用程序中添加了Google Play游戏服务支持(添加了BaseGameActivity和GameHelper),它的登录和注销工作流工作正常。在我的图形线程中,我向主活动处理程序发送消息,它调用beginUserInitiatedSignIn或signOut。当识别过程完成游戏助手对我的活动的onSignInFailed或OnSignInSucceed调用时,我可以检查isSignedIn(如果调用了OnSignInSucceed,则为true)

但今天我发现它现在的行为很奇怪。遗憾的是,我没有备份上一个工作版本,但essense代码是相同的

如果我要求应用程序登录,它会显示谷歌服务登录对话框(我的设备上有2个帐户)。我选择一个帐户,按ok,它会返回到我的应用程序,但不会调用OnSigningAccepted或OnSigningFailed(以前如果我取消此对话框,我会看到“未知错误”消息)。当我第二次尝试登录时,它会启动一个旋转的圆圈并无休止地等待。若我点击屏幕,它将中止等待并返回我的视图

虽然如果我关闭应用程序并再次启动它,它会在启动时成功登录,并在我签入运行时保持连接。它说:

onCreate: creating GamesClient
onStart.
onStart: connecting clients.
Connecting GamesClient.
onConnected: connected! client=1
All clients now connected. Sign-in successful.
All requested clients connected. Sign-in succeeded!
如果我注销,然后再次尝试登录,将显示“帐户”对话框并写入:

isGooglePlayServicesAvailable returned 0
beginUserInitiatedSignIn: starting new sign-in flow.
Connecting GamesClient.
onConnectionFailed: result 4
onConnectionFailed: since user initiated sign-in, trying to resolve problem.
resolveConnectionResult: trying to resolve result: ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{41f8a610: android.os.BinderProxy@41f8a5b0}}
result has resolution. Starting it.
当我选择一个帐户时,它将返回到我的活动,并且不会调用OnSigninsAcceed或onSignInFailed。若我在运行时检查,我会看到该应用程序并没有连接到谷歌服务。 当我再次尝试登录时,它会显示“永远旋转的圆圈”,并显示:

isGooglePlayServicesAvailable returned 0
beginUserInitiatedSignIn: continuing pending sign-in flow.
resolveConnectionResult: trying to resolve result: ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{41f8a610: android.os.BinderProxy@41f8a5b0}}
result has resolution. Starting it. 
当我点击屏幕时,circle被中止,没有调用OnSigninsAccessed或onSignInFailed等


我无法想象出哪里出了问题。处理程序是在主线程上创建的。我有谷歌的例子,它登录和注销都没有任何问题,就像我的应用程序一样。有人能告诉我哪里出了问题吗?谢谢

花了两天时间才发现一个愚蠢的错误。扩展BaseGameActivity时,请确保在活动方法中调用其所有方法(如果覆盖它们),例如:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
 super.onActivityResult(requestCode, resultCode, data);
 ....
 <our code here>
}
@覆盖
ActivityResult上的公共void(int请求代码、int结果代码、意图数据)
{
super.onActivityResult(请求代码、结果代码、数据);
....
}

BaseGameActivity调用其聚合的mHelper方法,这些方法发挥了所有的魔力。

也许您需要共享一些代码!实际上我不知道该分享什么代码。。。一切照旧。我的活动是谷歌BaseGameActivity的描述。我在主线程上调用这两个方法(beginUserInitiatedSignIn或signOut),并期望在SigningAccessed或onSignInFailed上进行回调。我想,如果有人面临类似的症状,他们可以提出问题所在。服务器安装可能出了问题。但它以前是有效的…哇,这正是我需要的解决方案。我添加了onActivityResult,但在添加所需代码(包括super.onActivityResult)之前对其进行了测试。感谢您发布您的解决方案!!!你是个救生员!我会在23小时内给你+100声誉!从生命的这一刻起,我搬到了mercurial。如果我每天都承诺的话——我可以看到发生了什么变化,但是对于svn,我必须小心,并在离线状态下工作(我已经经历了svn分支合并噩梦好几次:))你。是爸爸。伙计。非常感谢。好发现!我遇到了完全相同的问题,我忘记从
onActivityResult()调用
super()
。感谢您发布您的解决方案,它为我节省了很多时间。