几天来,我一直在用头撞墙。尽管阅读了许多描述了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
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上进行测试,可以直接从笔记本电脑上部署到该设备上。我的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客户端代码,但这没有什么区别。
我不确定这里还可以提供什么,但是如果您需要查看代码的任何其他部分,请告诉我。对于代码或日志中要检查的事情的任何建议,以获取有关失败原因的更好线索,我将万分感谢。
提前谢谢了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句