使用android基本示例的排行榜登录失败,出现com.google.android.gms.common.api.ApiException:4:

时间:2018-04-01 12:41:18

标签: android libgdx google-play-games

我正试图在我使用LibGDX框架制作的Android游戏中实现Google游戏排行榜。

尝试在以下存储库中实现google提供的基本android示例

https://github.com/playgameservices/android-basic-samples

由于我对排行榜感兴趣所以我对TypeANumber项目感兴趣。正如本项目的github ReadMe.md中所建议的那样,完成了所有设置:

所以,我做了以下事情:

  1. 为我的项目设置Google Play游戏服务
  2. 创建了链接的应用程序及其排行榜
  3. 替换res / ids.xml中的ID
  4. 更改Type-A-Number项目的build.grade中的包名称 applicationId com.myGame.blah
  5. 编译并运行
  6. 在我的移动物理设备上执行我实际登录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与应用程序不匹配,但我也匹配了。

    提前致谢

1 个答案:

答案 0 :(得分:0)

我收到此错误是因为当我们在链接应用程序后点击授权应用程序时,它显示了在Play商店上传的apk的默认SHA1,但是这与我们上传的那个不同,所以创建它我们需要使用keytool命令。理想情况下,我们应该使用我们用于生成发布apk的密钥库来添加调试SHA1证书以及SHA1证书。

下面是命令,其中C:\ Program Files \ Java \ jdk1.7.0_72 \ bin是PC中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的默认路径,默认情况下调试密钥库的密码是android

更多细节可以在下面的链接中看到 https://www.versionpb.com/tutorials/step-step-tutorials-libgdx-basic-setup-libgdx/implementing-google-play-services-leaderboards-in-libgdx/