谷歌游戏服务登录问题(第一次尝试失败,第二次成功)

     2023-04-14     115

关键词:

【中文标题】谷歌游戏服务登录问题(第一次尝试失败,第二次成功)【英文标题】:Google game services sign in issue (fails first attempt, successful second) 【发布时间】:2013-12-07 13:11:30 【问题描述】:

目前正在尝试将我的游戏(使用 libgdx)连接到 Google 游戏服务以启用排行榜/成就等并看到一些奇怪的行为。

问题

当我第一次点击“登录”时,它会显示选择您的谷歌帐户的对话框,然后播放服务权限圈对话框,然后是大加载圈。过了一会儿,它会显示一个对话框,并显示以下错误Google Play 服务的未知问题

如果我点击“确定”关闭该错误对话框,然后再次点击“登录”按钮,我会立即成功登录。之后,我可以看到排行榜等。

详情

我看到的错误日志:

...
D: GameHelper: onActivityResult: req=RC_RESOLVE, resp=9001
D: GameHelper: onAR: responseCode=9001, so giving up.
D: GameHelper: killConnections: killing connections.
D: GameHelper: killConnections: all clients disconnected.
D: GameHelper: State change CONNECTING -> DISCONNECTED
D: GameHelper: Making error dialog for failure: SignInFailureReason(serviceErrorCode:SIGN_IN_REQUIRED(4),activityResultCode:9001)
D: GameHelper: Showing error dialog.
D: GameHelper: Notifying LISTENER of sign-in FAILURE (error)
I: ----- Sign in failed :( -----
///// Tap the 'sign in' button again ///////
I: ----- Begin sign in process... -----
D: GameHelper: Starting USER-INITIATED sign-in flow.
D: GameHelper: isGooglePlayServicesAvailable returned 0
D: GameHelper: beginUserInitiatedSignIn: starting new sign-in flow.
D: GameHelper: Starting connections.
D: GameHelper: State change DISCONNECTED -> CONNECTING
D: GameHelper: connectNextClient: requested clients: 1, connected clients: 0
D: GameHelper: Pending clients: 1
D: GameHelper: Connecting GamesClient.
D: GameHelper: onConnected: connected! client=1
D: GameHelper: Connected clients updated to: 1
D: GameHelper: connectNextClient: requested clients: 1, connected clients: 1
D: GameHelper: Pending clients: 0
D: GameHelper: All clients now connected. Sign-in successful!
D: GameHelper: All requested clients connected. Sign-in succeeded!
D: GameHelper: State change CONNECTING -> CONNECTED
D: GameHelper: Notifying LISTENER of sign-in SUCCESS
I: ----- Sign in success! -----
D: GameHelper: onActivityResult: req=3, resp=3
D: GameHelper: onActivityResult: request code not meant for us. Ignoring.
...

由于我使用的是 libgdx,因此我没有扩展 BaseGameActivity,而是手动创建 GameHelper 并使用它

// in @Override onCreate:
mGameHelper = new GameHelper(this);                
mGameHelper.setup(this, GameHelper.CLIENT_GAMES);    
mGamesClient = mGameHelper.getGamesClient();       

// in @Override onStart:
mGameHelper.onStart(this);

// then, for the sign in button, using it:
mGameHelper.beginUserInitiatedSignIn();

额外信息

我还在日志中看到以下内容:

E: The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.

但是,不确定它是否相关,根据我的阅读,这似乎与地图/gps/位置有关。不使用地图,我可以登录,所以不确定这个错误是否相关(虽然听起来很糟糕!)

更新/编辑:经测试,此错误是由 AdMob(我已与 Google 服务集成)引起的。虽然错误听起来很糟糕,但禁用 AdMob(不再出现错误)奇怪的行为仍然相同。

我认为以下是有趣的错误日志,尽管在谷歌上搜索此错误时运气不佳:

E/dalvikvm( 2618): Could not find class 'android.app.AppOpsManager', referenced from method axo.a

编辑 2:更多发现! 即使我没有完成整个登录工作流程,我也会收到相同的错误对话框。

点按“登录” 查看要登录的帐户列表 点击“取消” 查看带有标题/消息的警报对话框:Google Play 服务存在未知问题

任何帮助都会很棒!

注意:

这可以始终如一地重现 - 注销,然后在登录按钮上轻按两次即可获得上述行为 确保我按照Google Play Game Services: strange sign in behavior 中的建议致电onActivityResult 完成教程并设置示例应用程序(A 类编号)- 一切正常。

【问题讨论】:

【参考方案1】:

想通了!结果是个愚蠢的错误!

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    super.onActivityResult(requestCode, resultCode, data);
    // mGameHelper.onActivityResult(requestCode, requestCode, data); // before - broken
    mGameHelper.onActivityResult(requestCode, resultCode, data); // after - working! \o/

看到区别了吗? (提示:mGameHelper.onActivityResult的第二个参数)

为了其他人在未来遇到此问题,以下日志虽然可能指示其他错误,但似乎不会影响登录过程 - 或一般的游戏服务 - 我的排行榜正在工作:)

E/GooglePlayServicesUtil(10033):未找到 Google Play 服务资源。检查您的项目配置以确保包含资源。 根据我的调试,这与使用 AdMob 和 Google Play 服务有关。 AdMob 可能会尝试获取基于位置的信息(所有其他 Google 搜索上述错误都会导致与地图相关的问题)

E/dalvikvm(10100):找不到类“android.app.AppOpsManager”,从方法 axp.a 引用 不确定这个错误是什么。 android.app.AppOpsManager 似乎是 API v19 (AppOpsManager in Android Developer) 中添加的一个类。我将 SDK 更改为使用 API v19,但仍然出现此错误。快速浏览文档表明它还具有与位置相关的功能(可能又是 AdMob - 不要以为我在禁用 AdMob 时看到了这个)

【讨论】:

【参考方案2】:

您是否在此链接激活了 api:https://console.developers.google.com/project ?

【讨论】:

【参考方案3】:

该应用必须使用相同的文件签名并上传到手机和 g play 作为测试版,才能使用谷歌服务

【讨论】:

【参考方案4】:

我从 GameHelper onStop 方法中删除了这一行。

//mExpectingResolution = false.

它对我有用

https://code.google.com/p/play-games-platform/issues/detail?id=98

【讨论】:

登录表单在第一次尝试在实时服务器上失败,但在第二次或第三次尝试

】登录表单在第一次尝试在实时服务器上失败,但在第二次或第三次尝试【英文标题】:loginformfailson1stattemptonliveserverbutworksonsecondorthird【发布时间】:2014-05-2716:54:12【问题描述】:我的登录表单在InternetExplorer中运行良好,但在C... 查看详情

小程序第一次登录失败,第二次成功问题(2)

参考技术A小程序登录第一次总是会失败,第二次肯定成功padblockcorrupted<metacharset="utf-8">在开发微信小程序过程中,遇到一个登录的问题。就是微信小程序登录操作的时候,第一次总是会失败,返回padblockcorrupted,然后... 查看详情

WCF 客户端。客户证书。第一次调用成功,第二次调用失败

】WCF客户端。客户证书。第一次调用成功,第二次调用失败【英文标题】:WCFclient.ClientCertificate.Firstcallsuccess,Secondcallfails【发布时间】:2019-10-2008:26:19【问题描述】:我正在尝试使用c#.NET4.5使用soap11和客户端证书凭据通过https连... 查看详情

微信小程序登录获取openid有时候为啥第一次会失败,第二次才成功?

...不知道能有啥毛病了,或者是跳转的时候,账号信息授权第一次没有更新好出来。追问是使用wx.login获取code,传给后台,有时候无法解析出openid,需要再次传code,才能解析出来 查看详情

登录失败。请检查您的网络连接广告再试一次,谷歌玩游戏服务

】登录失败。请检查您的网络连接广告再试一次,谷歌玩游戏服务【英文标题】:failedtosignin.Pleasecheckyournetworkconnectionadtryagain,googleplaygameservices【发布时间】:2018-09-1509:51:22【问题描述】:这可能是重复的,但我已经尝试了互联... 查看详情

模拟第一次调用失败,第二次调用成功

】模拟第一次调用失败,第二次调用成功【英文标题】:Simulatefirstcallfails,secondcallsucceeds【发布时间】:2012-07-3121:34:08【问题描述】:我想使用Mockito来测试下面的(简化的)代码。我不知道如何告诉Mockito第一次失败,然后第二... 查看详情

gitlab第一次推送成功第二次失败

参考技术A第二次失败第一种情况可能是在推送的过程中,服务器中断导致的推送失败连接第二种情况可能是在推送的过程中,接收方的账号信息出现错误,导致推送信息找不到接收者的情况 查看详情

Moq:设置一个模拟方法在第一次调用时失败,在第二次调用时成功

】Moq:设置一个模拟方法在第一次调用时失败,在第二次调用时成功【英文标题】:Moq:Setupamockedmethodtofailonthefirstcall,succeedonthesecond【发布时间】:2011-10-2602:34:59【问题描述】:使用Moq模拟一个在第一次调用时会抛出异常,然后... 查看详情

fread()函数第一次读取成功,但第二次读取失败,为啥为啥为啥,

...这是截取的一部分,通过z的输出,它的输出是10。就是说第一次读取成功,第二次失败了,为什么你这样肯定不对,fread对一个数据块进行读取,你传递的是&temp,需要一次性把所有的结构体都读完,不然你第二次读还是在&temp的... 查看详情

beta阶段第二次网络会议

Beta阶段第二次网络会议第一次会议问题解决情况  画面问题已经解决,游戏提示信息已加入完成  不同情况下背景已加入完成,但细节部分仍需要进行调整  科技树添加完成,权限修改完成,还存在部分细... 查看详情

iOS Facebook 帐户工具包 - 成功登录后第二次打开应用程序时保留用户令牌

...发布时间】:2016-10-2516:27:07【问题描述】:我的疑问是在第一次使用Facebook帐户工具包成功登录后,我第二次重新打开该应用程序。打开时如何检测和使用现有用户的Acc 查看详情

Google Play 游戏登录失败。 (谷歌播放服务)

】GooglePlay游戏登录失败。(谷歌播放服务)【英文标题】:GooglePlayGamesloginfails.(GooglePlayservices)【发布时间】:2019-07-0507:18:54【问题描述】:应用程序被加载到开发者控制台中。该应用程序在内部测试中发布。测试人员组已激活... 查看详情

每次 TortoiseSVN(通过 *** 连接时)第一次失败,但第二次工作

】每次TortoiseSVN(通过***连接时)第一次失败,但第二次工作【英文标题】:eachtimeTortoiseSVN(whenconnectedvia***)failsfirsttime,butworkssecondtime【发布时间】:2016-06-0910:06:30【问题描述】:我正在使用TortoiseSVN1.9.3和***连接(Windows1064位)。... 查看详情

layui跨域问题

...ter上的xhr转到all上,发现该请求发送了两次,再仔细看,第一次请求是post,第二次请求是options第一次请求是失败的,第二次是成功的经过一番百度,发现跨域请求都需要这样发送两次请求,但是顺序不对,应该是options在上,pos... 查看详情

Spring Method Level Security 在第二次调用时失败

...urity3.1,因为我找到了一个工作示例here,但它不使用表单登录。读取thisanswer后第一个方法调用成功获取Secu 查看详情

HTML 页面第一次和第二次加载不同(谷歌浏览器)

】HTML页面第一次和第二次加载不同(谷歌浏览器)【英文标题】:HTMLpageloadsdifferentfirstandsecondtime(GoogleChrome)【发布时间】:2013-09-1512:44:06【问题描述】:我有一个HTML页面,在您第一次加载时以一种方式加载,第二次以另一种方... 查看详情

对同一 URL 的第二次 AJAX 调用失败 - 但随机且很少工作

...布时间】:2018-05-2410:04:47【问题描述】:我正在尝试从Web服务获取响应,特别是将两个WFS图层从地理服务器添加到传单Web地图。每次加第一层都没问题,但大多数时候第二层失败,抱怨没有定义回调函数:ReferenceError:getJsonis 查看详情

内联日期选择器在第二次尝试时崩溃

...格[Firstmostcell]加载我的结果。现在我有另一个问题...当我第一次运行我的应用程序时 查看详情