我在项目中使用的游戏服务是:
compile 'com.google.android.gms:play-services-gcm:9.4.0'
compile 'com.google.android.gms:play-services-analytics:9.4.0'
compile 'com.google.android.gms:play-services-auth:9.4.0'
我从未通过自己拨打过GoogleApiAvailability
,但我想当我使用gcm或google登录时,似乎我的应用程序崩溃了,因为可用性检查。
Fatal Exception: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1493)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1511)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:638)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:617)
at android.support.v4.app.DialogFragment.show(DialogFragment.java:139)
at com.google.android.gms.common.SupportErrorDialogFragment.show(Unknown Source)
at com.google.android.gms.common.GoogleApiAvailability.zza(Unknown Source)
at com.google.android.gms.common.GoogleApiAvailability.zza(Unknown Source)
at com.google.android.gms.internal.zzpn$zza.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5631)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
它看起来当播放服务存在一些问题时它应该向用户显示任何对话框,但我的应用程序已经不在前台,所以onSaveInstanceState
已经发生,一些回调显示错误对话框rasie { {1}}。
答案 0 :(得分:0)
IllegalStateException
错误表示您的方法已在非法或不适当的时间/状态下为您请求的操作调用。
以下是complete explanation有关您遇到此类错误的原因。
您可以尝试按照此处的解决方案 issue by 覆盖
onResumeFragments()
而不是OnPostResume
。
如果扩展活动(对于API 11 +),则覆盖
OnPostResume
如果您扩展FragmentActivity,请覆盖
onResumeFragments
。有关更多信息,请查看这些相关的主题。