我最初可以多次使用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 – 经常登录和退出后谷歌登录失败所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)