API входа Google Android выдает исключение с сообщением 4 при аннулировании доступа - PullRequest
0 голосов
/ 02 декабря 2018

Я включил Google Sign In в свой пример проекта.Вход, получение данных профиля работает хорошо.API выхода также работает хорошо.Проблема заключается в том, что когда я пытаюсь отозвать доступ с помощью метода revokeAccess (), исключение выдается с сообщением 4, найдите приведенную ниже трассировку стека исключений.

com.google.android.gms.common.api.ApiException: 4: 
   at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(Unknown Source)
   at com.google.android.gms.common.internal.zai.zaf(Unknown Source)
   at com.google.android.gms.common.internal.zaj.onComplete(Unknown Source)
   at com.google.android.gms.common.api.internal.BasePendingResult.zaa(Unknown Source)
   at com.google.android.gms.common.api.internal.BasePendingResult.setResult(Unknown Source)
   at com.google.android.gms.auth.api.signin.internal.zzn.zzf(Unknown Source)
   at com.google.android.gms.auth.api.signin.internal.zzt.dispatchTransaction(Unknown Source)
   at com.google.android.gms.internal.auth-api.zzd.onTransact(Unknown Source)
   at android.os.Binder.execTransact(Binder.java:565)

Исходный код:

private void signOut() {
        showProgress();
        mSignInClient.signOut().addOnCompleteListener(this, new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                final Exception taskException = task.getException();
                if (taskException == null) {
                    revokeAccess();
                } else {
                    showToast(getString(R.string.sign_out_failure_message) + taskException.getLocalizedMessage());
                }
            }
        });
    }



private void revokeAccess() {
     mSignInClient.revokeAccess().addOnCompleteListener(this, new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                final Exception taskException = task.getException();
                if (taskException == null) {
                    hideProgress();
                    finish();
                } else {
                    hideProgress();
                    taskException.printStackTrace();
                    showToast(getString(R.string.disconnect_failure_message) + taskException.getLocalizedMessage());
                }
            }
        });
    }
...