Android Can';t使用Google Play Game服务登录

Android Can';t使用Google Play Game服务登录,android,firebase,kotlin,google-signin,google-play-games,Android,Firebase,Kotlin,Google Signin,Google Play Games,尝试使用google登录firebase并使用google play game服务,尝试登录时出现以下异常: W/MainActivity: Google sign in failed com.google.android.gms.common.api.ApiException: 13: at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(Unknown Source:14)

尝试使用google登录firebase并使用google play game服务,尝试登录时出现以下异常:

W/MainActivity: Google sign in failed
    com.google.android.gms.common.api.ApiException: 13: 
        at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(Unknown Source:14)
        at com.google.android.gms.auth.api.signin.GoogleSignIn.getSignedInAccountFromIntent(Unknown Source:47)
        at ca.doophie.scarletflames.MainActivity.onActivityResult(MainActivity.kt:63)
        at android.app.Activity.dispatchActivityResult(Activity.java:7276)
        at android.app.ActivityThread.deliverResults(ActivityThread.java:4264)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:4312)
        at android.app.ActivityThread.-wrap19(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1644)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6494)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
我按照指南设置了谷歌登录,只是更改了我的登录选项(见下文)。我还在google play控制台中打开了该应用程序的google play服务,添加了android调试密钥库SHA1和release SHA1密钥

代码如下:

// Configure Google Sign In
val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN)
        .requestIdToken(context.getString(R.string.default_web_client_id))
        .requestEmail()
        .build()
在我的清单中,我有这样一个信息:

<meta-data android:name="com.google.android.gms.games.APP_ID"
    android:value="@string/app_id" />
<meta-data android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version"/>
<meta-data android:name="com.google.android.gms.games.API_KEY"
    android:value=  "@string/api_key" />
最后,这是我登录的地方:

val signInIntent = mGoogleSignInClient?.signInIntent ?: return
startActivityForResult(signInIntent, rc)
以及:


添加
…标题有点误导,因为它是
第13行
中未处理的异常,而不是带有
错误代码13
的API异常。事实上,我刚刚注意到这不是问题所在-我刚刚将默认的\u GAMES\u SIGN\u in更改为默认的\u SIGN\u in,这就是它工作的原因,然后我开始发布问题,当我将其切换回游戏登录时,我得到了我在此处发布的异常。您显然需要使用
谷歌登录。默认\u games\u sign\u in
,而您可能没有请求正确的范围,类似于
Games.SCOPE\u Games
Games.SCOPE\u Games\u LITE
还有许多字段和方法被标记为不推荐使用。。。
val signInIntent = mGoogleSignInClient?.signInIntent ?: return
startActivityForResult(signInIntent, rc)
public override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
    super.onActivityResult(requestCode, resultCode, data)

    // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
    if (requestCode == LoginController.RC_SIGN_IN) {
        val task = GoogleSignIn.getSignedInAccountFromIntent(data)
        try {
            // Google Sign In was successful, authenticate with Firebase
            val account = task.getResult(ApiException::class.java)
            loginController?.firebaseAuthWithGoogle(account)
        } catch (e: ApiException) {
            // Google Sign In failed, update UI appropriately
            Log.w(TAG, "Google sign in failed", e) //Exception is here
        }
    }
}