Android Can';t使用Google Play Game服务登录
尝试使用google登录firebase并使用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)
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
}
}
}