谷歌玩服务游戏静默登录错误'com.google.android.gms.common.api.ApiException: 4: '



我使用Google Play服务静默登录,但它总是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. 单击添加指纹复制并从安卓粘贴 SHA-1 工作室控制台到证书指纹列,然后单击保存
  5. 重新启动需要Firebase和谷歌登录的应用。

中提琴。

事实证明,当您添加/编辑Firebase应用设置(SHA证书指纹(时,它会在您的应用程序Google Api控制台中生成相关凭据。虽然指纹是相同的,但它不起作用,直到我从谷歌 API 中删除了摇篮并让 Firebase 为我生成它 - 我想它的 ID 相关。

我的解决方案是同步我的项目,以便它采用更新的 SHA。

  • 下载更新的谷歌服务.json
  • 将其放在 andorid 工作室项目中的应用文件夹中。
  • 在 IDE Andorid Studio-> 文件>同步项目与 Gradel 文件的顶部栏中。

溶液。

相关内容

最新更新