android– 经常登录和退出后谷歌登录失败

android– 经常登录和退出后谷歌登录失败,第1张

概述我最初可以多次使用Google帐户登录我的应用.一切都好.但如果我在一两分钟内登录和退出约20次.Google登录失败,在onActivityResult函数中,它返回错误代码12501,resultCode=0;我正在使用手机:Nexus6,Android5.1.1这是我的代码:privateGoogleSignInOptionsmGso;privateGoo

我最初可以多次使用Google帐户登录我的应用.
一切都好.

但如果我在一两分钟内登录和退出约20次.
Google登录失败,在onActivityResult函数中,它返回错误代码12501,resultCode = 0;

我正在使用手机:Nexus 6,Android 5.1.1

这是我的代码:

private GoogleSignInoptions mGso;private Googleapiclient mGac;public voID init(@NonNull final BaseActivity activity) {    mGso = new GoogleSignInoptions.Builder(GoogleSignInoptions.DEFAulT_SIGN_IN)            .requestIDToken(activity.getString(R.string.default_web_clIEnt_ID))            .requestemail()            .build();    mGac = new Googleapiclient.Builder(activity)            .enableautoManage(activity /* FragmentActivity */, new Googleapiclient.OnConnectionFailedListener() {                @OverrIDe                public voID onConnectionFailed(@NonNull ConnectionResult connectionResult) {                    ToastUtils.show(activity, R.string.login_Failed);                }            })            .addAPI(Auth.Google_SIGN_IN_API, mGso)            .build();}public voID signIn(@NonNull final BaseActivity activity,                   @NonNull GoogleSignInCallback callback,                   @NonNull final onl oadingListener<PlatformUserEntity> Listener) {    callback.registerCallback(Listener);    Intent signInIntent = Auth.GoogleSignInAPI.getSignInIntent(mGac);    activity.startActivityForResult(signInIntent, REQUEST_Google_SIGNIN);    // disconnect the clIEnt    mGac.stopautoManage(activity);    mGac.disconnect();}

这是gradle:

compile 'com.Google.androID.gms:play-services-base:9.6.1'compile 'com.Google.androID.gms:play-services-gcm:9.6.1'compile 'com.Google.androID.gms:play-services-auth:9.6.1'

Fisrt,我使用FragmentActivity初始化Googleapiclient,然后signIn函数启动Acitvity. GoogleSignInCallback在onActivityResult函数中注册.然后断开客户端,因为每次单击登录按钮时,都会调用init函数.

我怀疑我太早使用stopautoManage()但似乎不是真的.
所以我很困惑,哪一部分可能是错的?

我注意到了日志:

Could not set socket write timeout: null12-03 17:21:43.859 264-264/? W/SurfaceFlinger: Couldn't log to binary event log: overflow.12-03 17:21:43.902 1946-12870/? W/Conscrypt: Could not set socket write timeout: null12-03 17:21:44.327 21168-21168/? W/AccountChipsFragment: Recording consent Failed.12-03 17:21:44.657 29359-29782/? E/TokenRequestor: You have wrong OAuth2 related configurations, please check. Detailed error: UNREGISTERED_ON_API_CONSolE12-03 17:21:44.664 812-1072/? W/ActivityManager: getRunningAppProcesses: caller 10145 does not hold REAL_GET_TASKS; limiting output12-03 17:21:44.697 21168-21168/? W/autoManageHelper: Unresolved error while connecting clIEnt. StopPing auto-manage.

它说“你有错误的OAuth2相关配置”,但我可以使用web客户端ID在第一次请求IDToken.

这让我更加困惑.

我也发现了一件奇怪的事.如果我安装本地构建的apk,则此错误从未发生过.如果我从谷歌游戏商店下载,则会出现此错误.但这两个apks之间没有区别,因为我将Google商店与本地商店一起提供.

解决方法:

最后我找到了原因.
我的apk在我们公司的发布程序中再次签名.
该过程使用了另一个密钥库,因此我的sha1密钥已更改.
我在Google开发控制台中配置了新的sha1密钥,这个BUG就解决了.

但我仍然感到困惑,如果我使用调试密钥库apk,成功登录并卸载它,然后我安装谷歌播放apk有不同的sha1键,谷歌登录可以工作一些.它不会告诉我错了.

总结

以上是内存溢出为你收集整理的android – 经常登录和退出后谷歌登录失败全部内容,希望文章能够帮你解决android – 经常登录和退出后谷歌登录失败所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1115765.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存