google play游戏服务无法登录

soat7uwm  于 2021-07-09  发布在  Java
关注(0)|答案(2)|浏览(1241)

我已经为此把头撞在墙上好几天了。尽管阅读了许多描述gps登录失败的问题/解决方案的帖子,但我还是找不到解决问题的方法。
简而言之,我正在androidstudio中使用libgdx框架开发一个游戏,并且添加了basegameutils作为库,并添加了所有必要的依赖项等。
问题陈述:当游戏开始时,它试图连接到gpgs,但总是以“登录失败”消息响应。logcat包含以下消息:

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-debug和release(尽管我只在这个阶段使用debug)。我已经将游戏添加到google开发者控制台中,并在api管理器中将其链接起来,并创建了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
    }
}

在我的清单上,我有必要的行。e、 g-

<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();

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

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

然而,尽管使用了googleapi客户端代码,这并没有什么不同。
我不知道这里还能提供什么,但是如果您需要查看代码的其他部分,请告诉我。如果您能在代码或日志中提供一些建议,以便更好地了解此操作失败的原因,我将不胜感激。
非常感谢。

rkue9o1l

rkue9o1l1#

我认为你应该仔细阅读(或重读)这里描述的所有程序。如果您需要更多帮助,请在重新开始学习教程后添加注解。
90%的问题与此有关:错误的sha1签名证书、错误的应用程序包名称、缺少客户端id等等。。。
附言:在这里你可以找到所有的工作样品

lztngnrs

lztngnrs2#

包名称出现在项目中的许多地方,并且必须与在googleplay开发人员控制台中注册的包名称匹配。e、 g.-
android版本.gradle

defaultConfig {
    applicationId "com.package.name"
    ...
}

android androidmanifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.package.name"
   ...
</manifest>

我在android build.gradle的applicationid中有一个输入错误。一旦更正,googleplay服务就成功登录了。

相关问题