繁体   English   中英

谷歌登录突然不起作用

[英]Google Sign-In suddenly not working

我正在开发一个使用 Google 登录的 Android 应用程序。

直到最近,一切都运行良好。 我停止了这个项目的工作大约两个星期,昨天又回到了它,谷歌登录突然不再工作了。 当我单击登录时,登录弹出窗口打开,我选择我的帐户,然后......没有任何反应。

因此,由于我没有更改与登录相关的代码中的任何内容,因此我开始在其他地方进行搜索。

首先我注意到我的compile 'com.google.android.gms:play-services-auth:11.4.2'可以更新为 11.6.0,所以这就是我所做的。

我再次运行该应用程序,现在它要求我更新 Google Play 服务,所以我点击了更新按钮,但同样没有任何反应。 我尝试了多次,但它没有改变任何东西。 所以我开始寻找其他地方。

我转到了找到 Google Sign-In 代码示例的链接,查看是否有任何更改……是的,它已更改,10 天前示例已更新,因此我更新了我的代码,现在没有更好的了,只是当我单击登录时,登录弹出窗口现在不会出现。

所以我开始更深入地查看日志,这里是有问题的行: W/GooglePlayServicesUtil: Google Play services out of date. Requires 11717000 but found 11577470 W/FA: Service connection failed: ConnectionResult{statusCode=SERVICE_VERSION_UPDATE_REQUIRED, resolution=null, message=null} W/LoginActivity: signInResult:failed code=12500 W/GooglePlayServicesUtil: Google Play services out of date. Requires 11717000 but found 11577470 W/FA: Service connection failed: ConnectionResult{statusCode=SERVICE_VERSION_UPDATE_REQUIRED, resolution=null, message=null} W/LoginActivity: signInResult:failed code=12500

很明显,它应该与 Google Play 服务有关...请注意,我不再收到“更新 Google Play 服务”弹出窗口。 我找到的有关此类问题的大多数答案都建议尝试使用具有较低 API 的另一个模拟器,或降级 Google Play 服务编译线,因此我尝试了两者。 我曾经在带有 API 27 的 Pixel XL 上运行我的测试,我在带有 API 25 的 Nexus 6P 上尝试过,在这个上我可以进入登录弹出窗口,但是在选择我的帐户时,我得到W/LoginActivity: signInResult:failed code=10. 我还尝试了两个真实设备,分别是带有 API 25 的 OnePlus 3 和带有 API 24 的三星 Galaxy S6 Edge,我在这两个设备上遇到了与 Nexus 6P 相同的错误。 此外,我没有找到有关错误代码 10 含义的任何信息。关于 Google Play 服务降级,如果我这样做,则无法识别新代码示例的某些类。 此外,在 API 低于 27 的设备上尝试时,它似乎不再是 Google Play 服务的问题。

更新:我发现错误代码 10 表示“应用程序配置错误”。 我不明白在一切正常的时间和它停止工作的时间之间没有任何变化,无论如何我生成了一个新的 debug.keystore,一个新的配置文件并将它添加到我的 /app. 显然它仍然不起作用。

更新 2 :当我尝试了所有可以想到的方法时,我知道我的 debug.keystore 有问题(我到处都读到,如果在构建项目时删除该文件应该重新生成,但对我而言并非如此)。 我卸载/重新安装了 Android Studio,希望它至少能解决这个问题。 好吧,我在 .android 文件夹中有很多我不记得的文件,现在我只有 1 个文件夹和 2 个文件,显然 debug.keystore 不是其中之一。 所以这让我想起了获取 SHA1 签名的另一种方法,这就是我在回答帖子中解释的内容。 但是我的 debug.keystore 仍然有问题,所以如果有人有想法......

我终于找到了让它工作的方法。 这可能不是正确的解决方案,因为仍然有问题(我将编辑问题以解释原因),但它有效,所以也许它会有所帮助。

所以问题来自配置文件,更准确地说是用于生成它的 debug.keystore,事实上,我试图通过在 Gradle 面板中运行signReport来生成获取配置文件所需的 SHA1 签名,而不是运行keytool -exportcert -list -v \\ -alias androiddebugkey -keystore ~/.android/debug.keystore命令,现在它又可以工作了。

我仍然不明白这个问题最初是如何出现的,因为我没有改变任何东西......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM