簡體   English   中英

Google Play 服務游戲無提示登錄錯誤 'com.google.android.gms.common.api.ApiException: 4:'

[英]Google play service game Silent Login error 'com.google.android.gms.common.api.ApiException: 4: '

我使用谷歌播放服務靜默登錄,但它總是 CompleteListener 顯示 com.google.android.gms.common.api.ApiException: 4: 'SIGN_IN_REQUIRED' 但我的應用程序中的測試用戶。 我的代碼在下面,

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mGoogleSignInClient = GoogleSignIn.getClient(this, new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN).build());
}

@Override
   protected void onResume() {
       super.onResume();
       signInSilently();
}

private void signInSilently() {

    mGoogleSignInClient.silentSignIn().addOnCompleteListener(this, new OnCompleteListener<GoogleSignInAccount>() {
    @Override
       public void onComplete(@NonNull Task<GoogleSignInAccount> task) {
           if (task.isSuccessful()) {
              try {
                   GoogleSignInAccount signInAccount = task.getResult(ApiException.class);
              } catch (ApiException apiException) {
                   System.out.println("CATE_RESULT_CODE " + apiException.getLocalizedMessage()+" " +apiException.getStatusMessage()+ " " +apiException.getMessage()+ " "+apiException.getCause() );
              }
           } else {
                try {
                    GoogleSignInAccount signInAccount = task.getResult(ApiException.class);
                } catch (ApiException apiException) {
                      System.out.println("CATE_RESULT_CODE " + apiException.getLocalizedMessage()+" " +apiException.getStatusMessage()+ " " +apiException.getMessage()+ " "+apiException.getCause() );
                }
           }
        }
     });
  }

我的 gradle 文件依賴項:

dependencies {
 ext {
    support_library_version = '27.0.2'
    google_play_services_version = '15.0.2'
  }
    implementation "com.android.support:appcompat-v7:${support_library_version}"
    implementation "com.android.support:design:${support_library_version}"
     implementation "com.android.support:recyclerview-v7:${support_library_version}"
     implementation "com.android.support:cardview-v7:${support_library_version}"
     implementation 'com.google.android.gms:play-services-auth:15.0.1'
     implementation 'com.google.android.gms:play-services-games:15.0.1'
 }

 erorr :
  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.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:404)
    at dalvik.system.NativeStart.run(Native Method)

還在清單文件中添加應用程序 ID。

請給我一個解決這個問題的方法。 提前致謝

錯誤將被解決...

遇到此類問題的任何人請先檢查您的 Firebase 項目設置中的 SHA 1 密鑰。

我的 SHA 1 密鑰與 Firebase 項目設置不匹配。

現在我改變它並完美地工作..

謝謝..

按照以下步驟操作,直到您在 Android Studio 中獲得 SHA-1

https://stackoverflow.com/a/33479550/7772358

然后去這個鏈接

https://console.firebase.google.com/

  1. 單擊左上角 Firebase 徽標下項目概述附近的設置齒輪圖標
  2. 單擊“項目”設置並確保在“常規”選項卡的下拉列表中選擇正確的項目。
  3. 向下滾動並找到 SHA 證書指紋
  4. 單擊添加指紋從 Android Studio 控制台復制並粘貼 SHA-1 到證書指紋列,然后單擊保存
  5. 重新啟動需要 firebase 和 google 登錄的應用程序。

中提琴。

事實證明,每當您添加/編輯Firebase應用設置(SHA 證書指紋)時,它都會在您的應用Google Api控制台中生成相關憑據。 盡管指紋是相同的,但直到我從 Google Api 中刪除了憑據並讓 Firebase 為我生成它之后,它才起作用 - 我猜它的 ID 相關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM