Google Play游戏在注销时崩溃

问题描述 投票:0回答:2

自从将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报告,那将非常感激。

android google-play-games
2个回答
0
投票

你在onDisconnected中调用任何PGS方法吗?如果,那么,您应该在调用mGoogleSignInClient.signOut()之前调用它们。


0
投票

我也试图迁移到新的GPS并遇到与你相同的问题。

我试图修复另一个问题时偶然修复了它。

我所做的只是从我的onStop方法中删除signOut(优良作法是使用以前的API调用onStop方法的disconnect)。

由于signOut实际上清除了用户先前选择的帐户,因此在onStop方法中调用时,会创建所有类型的其他问题(在检查用户是否已登录时,或者当silentSignIn始终失败时,尤其是在活动之间)。

所以我不知道你是否也在你的onStop上调用signOut,而且我不确定它是如何导致我的应用程序以同样的方式崩溃的,但如果你这样做,请尝试不使用它。

更新的示例应用程序在onStop方法中不包含任何内容(与以前曾经调用disconnect的方法相比),所以我猜这个方法没有任何关系。

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.