当前位置: 首页 > 面试题库 >

Google Play游戏服务无法登录

杜俭
2023-03-14
问题内容

几天来,我一直在用头撞墙。尽管阅读了许多描述GPS登录失败的众多问题/解决方案的文章,但我仍无法找到解决问题的方法。

简而言之,我正在使用LibGDX框架在Android Studio中开发游戏,并添加了BaseGameUtils作为库并添加了所有必需的依赖项等。

问题陈述: 游戏开始时,它尝试连接到GPGS,但始终以“无法登录”消息作为响应。日志猫包含以下消息:

01-03 19:37:41.744 6693-7436/? E/TokenRequestor: You have wrong OAuth2 related configurations, please check. Detailed error: UNREGISTERED_ON_API_CONSOLE
01-03 19:37:41.764 20609-20609/? I/SignInActivity: Transition from 6 to 11
01-03 19:37:41.764 20609-20609/? W/SignInActivity: onSignInFailed()...
01-03 19:37:41.764 20609-20609/? W/SignInActivity: Sign in failed during 6
01-03 19:37:41.764 20609-20609/? W/SignInActivity: ==> Returning non-OK result: 10002

根据https://developers.google.com/android/reference/com/google/android/gms/games/GamesActivityResultCodes

public static final int RESULT_SIGN_IN_FAILED

Result code sent back to the calling Activity when signing in fails.

The attempt to sign in to the Games service failed.
For example, this might happen if the network is flaky,
or the user's account has been disabled, or consent could not be obtained.

Constant Value: 10002

我的网络不是“不稳定”的,我不认为自己的帐户已被禁用-我安装的其他商业游戏在GPGS上运行正常。

我已经对我的APK进行了签名-调试和发布(尽管我目前仅在调试阶段使用)。我已将游戏添加到Google Developer Console中,并在API
Manager中将其链接,并创建了OAuth2客户端ID。实际上,我已经做了很多次,删除链接的游戏并以我的客户ID或SHA1指纹不正确的方式重新创建它。logcat消息表明OAuth2配置错误,但是我已经检查了很多次,对我来说一切都很好。验证签名的最佳方法是什么?

我正在对物理三星S7进行测试,该三星S7可直接从笔记本电脑部署到。我的Android
Gradle声明了必要的SigningConfigs,因此我认为应该正确签署我部署的游戏。

android {
signingConfigs {
    config {
        keyAlias 'mygame-key'
        keyPassword 'mypassword'
        storeFile file('path/to/my/keystore.jks')
        storePassword 'keystorepassword'
    }
}
buildTypes {
    release {
        signingConfig signingConfigs.config
    }
    debug {
        signingConfig signingConfigs.config
        debuggable true
    }
}

在清单中,我有必要的行。例如-

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<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"/>

最初,在AndroidLauncher中,我使用的是GameHelper类,但是最近发现它已被弃用,因此我将代码更改为使用GoogleApiClient。构建器的定义如下:

mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .addApi(Games.API).addScope(Games.SCOPE_GAMES)
            .build();

其他方法的代码直接取自TrivialQuest示例应用程序,例如-

@Override
protected void onStart() {
    Log.d(TAG, "onStart()");
    super.onStart();
    mGoogleApiClient.connect();
}

但是,尽管使用了Google API客户端代码,但这没有什么区别。

我不确定这里还可以提供什么,但是如果您需要查看代码的任何其他部分,请告诉我。对于代码或日志中要检查的事情的任何建议,以获取有关失败原因的更好线索,我将非常感谢。

提前谢谢了。


问题答案:

我认为您应该仔细阅读(或重新阅读)这里描述的所有过程。再次从头开始阅读本教程后,如果您需要更多帮助,请添加评论。

90%的问题与以下原因有关:SHA1签名证书错误,应用程序包名称错误,客户端ID丢失以及类似的问题…

PS:在这里您可以找到所有工作示例



 类似资料:
  • 我想在我的LibGDX Android游戏中使用Google Play Game Services API的成就和排行榜。我所做的唯一一件事就是从游戏服务开发者网站上获取运行的示例。我已经尝试在我的项目中使用这段代码很多天了,但仍然一无所获。我也尝试过学习本教程http://helios.hud.ac.uk/u1070589/blog/?p=202但我没有“主游戏类(从ApplicationLis

  • 我试图建立一个通用服务器总是在连接的客户端。 该体系结构由4个主要组件组成 有状态应用服务器 无状态网关服务器 客户排队 系统和经纪人 工艺流程 客户端连接到网关 我正在使用JavaNetty作为网关。appserver也是用Java编写的。 我很想说这个设计像Mongrel2,但我不能完全确定。我想说,这更符合城市飞艇氦边缘服务器的设计(http://urbanairship.com/blog/

  • JAGS 游戏服务器是一个开源的 Java / AS 3.0 的游戏服务器,支持多玩家、碰撞检测以及键盘事件等等。

  • 二本鼠鼠学Java没出路。。 技术面 - 50min - 9.26 自我介绍 介绍一下你的项目经历 MySQL索引底层结构 Redis有哪些数据结构 Redis的持久化机制 学过其他语言吗(c++和go),说一下c++、go、Java的区别 LRU怎么实现 最短路径算法实现 JVM垃圾回收算法 手撕在一排数据中算出不重复数据的子集 TCP三次握手 你知道什么是SYN攻击吗 TCP四次挥手为什么是四

  • 全程35分钟! 1.自我介绍 2.选你最熟悉的项目深挖 3.tcp粘包,如何解决? 4.怎么自己设计数据库 5.自己设计过那些小工具?日志系统,简易shell 6.STL是线程安全的吗? 7.哈希冲突,红黑树 8.说一下线程安全 9.负载均衡的算法了解哪些? 10.游戏寻路算法了解吗?答了回溯 11.数学三维和二维两点之间的距离 12.实习经历,写过哪些算法? 13.为什么游戏服务器不用数据库?

  • 时间线5.4日一面,全程30mins 1.自我介绍 2.C++多态 2.vector以及STL各种容器的迭代器失效问题 3.场景题,两个容器中如果存放了相同指针,如果其中一个释放了一个在用怎么解决? 4.gdb调试器怎么调试多线程,怎么查看堆栈 5.你曾用过哪些使用多线程的方式? 6.C++11了解哪些,具体一点 7.项目深挖 8.了解哪些负载均衡算法 还有一些忘了,一面已过,约的5.8二面~