首页 > 解决方案 > 将 Google Snapshot API 集成到 Android 应用程序会导致 com.google.android.gms.common.api.ResolvableApiException: 4: 4:

问题描述

我目前正在开发一个 Android 应用程序。它已经使用了 Google Play 游戏(排行榜、成就和回合制多人游戏已经集成并且运行良好)。现在我想保存一些我想使用 Snapshot API 的 GameData。

我总是为一组测试人员签署一个发布版本并将其上传到 google play 并且在我尝试添加 Snapshot API 之前一切正常。

我做了什么:

private void signInToGoogle() {
mGoogleClient = GoogleSignIn.getClient(this,
        new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN)
                .requestScopes(Drive.SCOPE_APPFOLDER)
                .build());
signInSilently();
}

private void signInSilently() {
System.out.println("A7DE signInSilently()");

mGoogleClient.silentSignIn().addOnCompleteListener(this,
        new OnCompleteListener<GoogleSignInAccount>() {
            @Override
            public void onComplete(@NonNull Task<GoogleSignInAccount> task) {
                if (task.isSuccessful()) {
                    System.out.println("A7DE signInSilently(): success");
                    onConnected(task.getResult());
                } else {
                    System.out.println("A7DE signInSilently(): failure "+task.getException());
                    Log.e(TAG, "Exception: "+Log.getStackTraceString(task.getException()));
                    onDisconnected();
                }
            }
        });
}

使用该代码 Logcat 说:

09-06 13:59:15.632 14860-14860/? I/System.out: A7DE signInSilently(): failure com.google.android.gms.common.api.ResolvableApiException: 4: 4: 
09-06 13:59:15.633 14860-14860/? E/StatsACT: Exception: com.google.android.gms.common.api.ResolvableApiException: 4: 4: 
     at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(Unknown Source)
     at com.google.android.gms.common.internal.zzk.convert(Unknown Source)
     at com.google.android.gms.common.internal.zzl.onComplete(Unknown Source)
     at com.google.android.gms.common.api.internal.BasePendingResult.zza(Unknown Source)
     at com.google.android.gms.common.api.internal.BasePendingResult.setResult(Unknown Source)
     at com.google.android.gms.auth.api.signin.internal.zzk.zzd(Unknown Source)
     at com.google.android.gms.auth.api.signin.internal.zzu.dispatchTransaction(Unknown Source)
     at com.google.android.gms.internal.auth.zze.onTransact(Unknown Source)
     at android.os.Binder.execTransact(Binder.java:573)
09-06 13:59:15.633 14860-14860/? I/System.out: A7DE disconnected...

为了让它更加听不见,这只会在 S6 Android 7 上引发错误。还使用 A5 Android 8 对其进行了测试,并且它运行良好......

对我来说,这是一个非常罕见的问题,但我希望你能帮助我找到解决方案。

提前致谢

标签: javaandroidgoogle-play-servicesgoogle-signingoogle-api-client

解决方案


我为我找到了解决方案。问题是 S6 上的权限未授予使用 Google Drive。现在我首先检查用户是否已经授予权限,然后使用 Drive.SCOPE_APPFOLDER 打开 GoogleSignInClient。


推荐阅读