使用 android 基本示例登录排行榜失败并出现 com.google.android.gms.common.api.ApiException: 4:
Posted
技术标签:
【中文标题】使用 android 基本示例登录排行榜失败并出现 com.google.android.gms.common.api.ApiException: 4:【英文标题】:Leaderboard signin using android basic samples fails with com.google.android.gms.common.api.ApiException: 4: 【发布时间】:2018-09-10 21:29:48 【问题描述】:我正在尝试在我的一款使用 LibGDX 框架制作的 android 游戏中实现 Google play 游戏排行榜。
尝试在以下存储库中实现 google 提供的基本 android 示例
https://github.com/playgameservices/android-basic-samples
因为我对排行榜感兴趣,所以我对 TypeANumber 项目感兴趣。正如该项目的 github ReadMe.md 中所建议的,所有设置都已完成:
所以,我做了以下事情:
-
为我的项目设置 google play 游戏服务
为它创建了链接的应用程序和排行榜
替换 res/ids.xml 中的 ID
在我的 Type-A-Number 项目的 build.grade 中更改包名称
应用程序ID
com.myGame.blah
编译运行
在我实际登录 google play 游戏的移动物理设备上执行,但执行时仍然如此。
我确实看到下面有一个带有消息的按钮 使用 Google 登录,与您的朋友分享您的分数和成就。
单击此按钮进行记录时,它显示正在连接到应用程序,但过了一段时间后我弹出错误 4:
`04-01 17:59:15.604 27814-27814/? D/TanC: signInSilently(): failure
com.google.android.gms.common.api.ApiException: 4:
at com.google.android.gms.common.internal.zzb.zzy(Unknown Source)
at com.google.android.gms.common.internal.zzbk.zzz(Unknown Source)
at com.google.android.gms.common.internal.zzbl.zzr(Unknown Source)
at com.google.android.gms.common.api.internal.zzs.zzc(Unknown Source)
at com.google.android.gms.common.api.internal.zzs.setResult(Unknown Source)
at com.google.android.gms.auth.api.signin.internal.zzg.zza(Unknown Source)
at com.google.android.gms.auth.api.signin.internal.zzt.onTransact(Unknown Source)
at android.os.Binder.execTransact(Binder.java:388)
at dalvik.system.NativeStart.run(Native Method) 04-01 17:59:15.604 27814-27814/? D/TanC: onDisconnected()`
任何人都可以建议,我缺少什么以及问题所在。经过搜索,我了解到可能是我的 Oauth 2.0 客户端 ID 与应用程序不匹配,但后来我也匹配了。
提前致谢
【问题讨论】:
在libgdx github repo 中找到了带有 Google Play 游戏服务集成的官方 Libgdx 示例。这可能会对您有所帮助。 我已经检查过了。它说的是回购中缺少的 BaseGameutils 。 【参考方案1】:我收到此错误是因为当我们在链接应用程序后单击授权应用程序时,它会显示在 Play 商店上传的 apk 的默认 SHA1,但是这与我们上传的不同,因此我们需要创建它使用 keytool 命令。理想情况下,我们应该使用我们用来生成发布 apk 的密钥库添加调试 SHA1 证书以及 SHA1 证书。
以下是命令,其中 C:\Program Files\Java\jdk1.7.0_72\bin 是您电脑中 Java 安装的路径,而 D:\Java\libGdx\apk\keystore\android.jks 是安装路径您的生产密钥库
C:\Program Files\Java\jdk1.7.0_72\bin>keytool -list -keystore D:\Java\libGdx\apk\keystore\android.jks 输入密钥库密码: 密钥库类型:JKS 密钥库提供者:SUN 您的密钥库包含 1 个条目 briskybird,2017 年 12 月 9 日,PrivateKeyEntry, 证书指纹(SHA1):27:XX:XX:XX:XX:B2:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:BD:BF
使用下面生成调试证书
C:\Program Files\Java\jdk1.7.0_72\bin>keytool -list -keystore C:\Users\USER.android\debug.keystore
C:\Users\.android\debug.keystore 是 debug.keystore 的默认路径,debug keystore 的密码默认为 android
更多细节可以在下面的链接中看到 https://www.versionpb.com/tutorials/step-step-tutorials-libgdx-basic-setup-libgdx/implementing-google-play-services-leaderboards-in-libgdx/
【讨论】:
以上是关于使用 android 基本示例登录排行榜失败并出现 com.google.android.gms.common.api.ApiException: 4:的主要内容,如果未能解决你的问题,请参考以下文章