Big*_*ica 5 android google-play-services google-play-games
我正在 Android studio 中开发一个应用程序,该应用程序使用 Google Play Games 服务来获取成就和排行榜,但我在尝试登录时收到错误。我按照文档操作,我的所有密钥和 OAuth 代码都匹配并且仍然当我尝试登录时收到此错误:
com.google.android.gms.common.api.ApiException:4:4:
我到处寻找答案,重新启动所有凭据,取消发布,然后发布所需的所有新内容,检查所有 ID。如果有人能给我一些关于还可以尝试什么的建议,我将非常感激。
com.google.android.gms.common.api.ApiException: 4: 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.zzj.zzc(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:461)
Run Code Online (Sandbox Code Playgroud)
这是 Google 文档中用于登录的代码。
private void startSignInIntent() {
GoogleSignInClient signInClient = GoogleSignIn.getClient(
this, GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN
);
Intent intent = signInClient.getSignInIntent();
startActivityForResult(intent, RC_SIGN_IN);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
GoogleSignInResult result =
Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result.isSuccess()) {
// The signed in account is stored in the result.
GoogleSignInAccount signedInAccount = result.getSignInAccount();
} else {
String message = result.getStatus().getStatusMessage();
if (message == null || message.isEmpty()) {
message = getString(R.string.signin_other_error);
}
new AlertDialog.Builder(this)
.setMessage(message)
.setNeutralButton(android.R.string.ok, null)
.show();
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我遇到这个问题时,我必须做两件事:
签署我的应用程序(通常使用我的发布密钥)并使用 adb 将应用程序部署到我的手机
转到 console.developers.google.com,转到凭据部分,转到 OAuth 2.0 客户端 ID,找到我的应用程序,单击它,然后输入发布密钥中的 SHA1 密钥。
另外,对于遇到此问题的其他人来说,值得注意的是,您必须先使用 OP 正在执行的操作,然后才能执行silentSignIn。OP,你不必担心这个。
编辑:没关系,看起来是silentSignIn 导致了OP 问题。
第二次编辑:我认为这个答案有些错误。我想你可以在这里找到正确的答案:https ://stackoverflow.com/a/56463302/5434860
| 归档时间: |
|
| 查看次数: |
5781 次 |
| 最近记录: |