自从将Google Play服务迁移到11.6.0后,我的崩溃报告中出现了以下错误:
Fatal Exception: java.lang.IllegalStateException: Not connected. Call connect() and wait for onConnected() to be called.
at com.google.android.gms.common.internal.zzd.zzakb(Unknown Source)
at com.google.android.gms.common.internal.zzd.zzakc(Unknown Source)
at com.google.android.gms.games.internal.GamesClientImpl.zzg(Unknown Source)
at com.google.android.gms.games.internal.GamesClientImpl.zza(Unknown Source)
at com.google.android.gms.common.api.internal.zzbr.signOut(Unknown Source)
at com.google.android.gms.common.api.internal.zzbp.zzaii(Unknown Source)
at com.google.android.gms.common.api.internal.zzbp.handleMessage(Unknown Source)
at android.os.Handler.dispatchMessage(Handler.java:101)
at android.os.Looper.loop(Looper.java:156)
at android.os.HandlerThread.run(HandlerThread.java:61)
堆栈跟踪中signOut
的出现似乎表明涉及了注销过程,但我一直无法找出究竟出现了什么问题。
注销过程的代码目前如下:
protected void logout() {
if (GoogleSignIn.getLastSignedInAccount(this) != null) {
mGoogleSignInClient.signOut().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
mGoogleSignInAccount = null;
setIgnoreConnectionResolution(true);
onDisconnected();
}
});
}
}
如果有人知道如何解决此问题,或者至少如何向Google报告,那将非常感激。
答案 0 :(得分:0)
你是否在onDisconnected中调用任何PGS方法?如果,那么,您应该在mGoogleSignInClient.signOut()调用之前调用它们。
答案 1 :(得分:0)
我也尝试迁移到新的GPS并遇到与您相同的问题。
我在尝试修复另一个问题时偶然修复了它。
我所做的就是从我的onStop方法中删除signOut(最好使用之前的API调用onStop方法的disconnect)。
由于signOut实际上清除了用户先前选择的帐户,因此在onStop方法中调用时,会创建所有类型的其他问题(在检查用户是否已登录时,或者当silentSignIn始终失败时,尤其是在活动之间)。
所以我不知道你是否也在你的onStop上调用signOut,而且我不确定它是如何导致我的应用程序以同样方式崩溃的,但如果你这样做,请尝试不使用它。
更新的示例应用程序在onStop方法中不包含任何内容(与之前曾调用disconnect的方法相比),所以我猜这个方法无关。
希望这有帮助。