登录失败。请检查您的网络连接广告重试,google玩游戏服务
failed to sign in . Please check your network connection ad try again , google play game services
这可能是重复的,但我已经尝试了互联网上所有可用的方法来解决这个问题,但到目前为止没有成功,所以再次询问。
我已经在 libGDX 中实现了一个游戏,现在使用 google 在其中玩游戏,使用 BaseGameUtils 库和 google api 方法。但是当我现在开始游戏时,我得到以下错误
failed to sign in . Please check your network connection ad try again , google play game services
我已经检查了下面提供的所有解决方案 link 但没有任何效果
Failed to sign in. Please check your network connection and try again
我也阅读了相同的故障排除指南,但仍然没有成功。
下面是我的AndroidManifext.xml
<?xml version="1.0" encoding="utf-8"?>
package="com.versionpb.game"
android:versionCode="10"
android:versionName="1.6" >
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-sdk tools:overrideLibrary="
com.google.android.gms.ads,
com.google.android.gms.ads.impl,
com.google.android.gms,
android.support.v4,
android.support.compat,
android.support.mediacompat,
android.support.coreutils,
android.support.coreui,
android.support.fragment,
com.google.android.gms.admob.license ,
com.google.android.gms.common.license,
com.google.android.gms.gass,
com.google.android.gms.gass.license,
com.google.android.gms.admob.impl.license,
com.google.example.games.basegameutils,
com.google.android.gms.games,
com.google.android.gms.games.license,
com.google.android.gms.base,
com.google.android.gms.base.license,
com.google.android.gms.tasks,
com.google.android.gms.tasks.license,
com.google.android.gms.drive,
com.google.android.gms.drive.license,
com.google.android.gms.plus,
com.google.android.gms.plus.license,
com.google.android.gms.auth,
com.google.android.gms.auth.license,
com.google.android.gms.auth.api,
com.google.android.gms.auth.api.phone,
com.google.android.gms.auth.api.phone.license
" />
<application
android:allowBackup="true"
android:icon="@mipmap/briskybirdicon"
android:label="@string/app_name"
android:theme="@style/GdxTheme">
<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"/>
<activity
android:name="com.versionpb.game.AndroidLauncher"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
这是我的 Strings.xml 文件
<?xml version="1.0" encoding="utf-8"?>
<string name="app_name">BriskyBird</string>
<!--
Google Play game services IDs.
Save this file as res/values/games-ids.xml in your project.
-->
<!-- package_name -->
<string name="package_name" translatable="false">com.versionpb.game</string>
</resources>
下面是我的ids.xl
<?xml version="1.0" encoding="utf-8"?>
<resources><!-- app_id -->
<string name="app_id" translatable="false">351XXXX97012</string>
<!-- leaderboard High Score Easy -->
<string name="leaderboard_high_score_easy"
translatable="false">CgkItNrXiJXXXXXXXX</string>
我使用了下面的 baseGameUtils github repo
https://github.com/ahmetdenizyilmaz/connect
下面是我在核心项目中创建的界面
package com.versionpb.game;
public interface PlayServices
{
public void signIn();
public void signOut();
public void rateGame();
public void unlockAchievement(String str);
public void submitScore(int highScore);
public void submitLevel(int highLevel);
public void showAchievement();
public void showScore();
public void showLevel();
public boolean isSignedIn();
}
下面是我在 AndroidLauncher 中的实现方式
package com.versionpb.game;
public class AndroidLauncher 扩展 AndroidApplication 实现 PlayServices {
private static final String TAG = "AndroidLauncher";
private GameHelper gameHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gameHelper = new GameHelper(this, GameHelper.CLIENT_GAMES);
gameHelper.enableDebugLog(true);
GameHelper.GameHelperListener gameHelperListener = new GameHelper.GameHelperListener() {
@Override
public void onSignInFailed() {
}
@Override
public void onSignInSucceeded() {
}
};
RelativeLayout layout = new RelativeLayout(this);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
View gameView = initializeForView(new BriskyBird(this), config);
layout.addView(gameView);
setContentView(layout);
gameHelper.setup(gameHelperListener);
}
@Override
protected void onStart() {
super.onStart();
gameHelper.onStart(this);
}
@Override
protected void onStop() {
super.onStop();
gameHelper.onStop();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
gameHelper.onActivityResult(requestCode, resultCode, data);
}
@Override
public void signIn() {
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
System.out.println("PlayServices:Signin In");
gameHelper.beginUserInitiatedSignIn();
}
});
} catch (Exception e) {
System.out.println("PlayServices:Signin in Failed");
//Gdx.app.log("MainActivity", "Log in failed: " + e.getMessage() + ".");
}
}
@Override
public void signOut() {
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
System.out.println("PlayServices:Signin Out");
gameHelper.signOut();
}
});
} catch (Exception e) {
//Gdx.app.log("MainActivity", "Log out failed: " + e.getMessage() + ".");
}
}
@Override
public void rateGame() {
String str = "Your PlayStore Link";
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(str)));
}
@Override
public void unlockAchievement(String str) {
Games.Achievements.unlock(gameHelper.getApiClient(), str);
}
@Override
public void showAchievement() {
if (isSignedIn()) {
startActivityForResult(Games.Achievements.getAchievementsIntent(gameHelper.getApiClient()), 1);
} else {
signIn();
}
}
}
@Override
public boolean isSignedIn() {
return gameHelper.isSignedIn();
}
}
当我使用 GameHelper 过滤时记录 Cat 片段
04-05 19:22:48.405 15038-15038/? D/GameHelper: GameHelper: Debug log enabled.
04-05 19:22:50.215 15038-15038/? D/GameHelper: GameHelper: Setup: requested clients: 1
04-05 19:22:50.490 15038-15038/? D/GameHelper: GameHelper: onStart :
04-05 19:22:50.490 15038-15038/? D/GameHelper: GameHelper: Connecting
客户。
04-05 19:22:54.335 15038-15038/? D/GameHelper:GameHelper:onConnectionFailed
04-05 19:22:54.350 15038-15038/? D/GameHelper:GameHelper:连接失败:
04-05 19:22:54.400 15038-15038/? D/GameHelper:GameHelper:-代码:SIGN_IN_REQUIRED(4)
04-05 19:22:54.400 15038-15038/? D/GameHelper: GameHelper: - 可解析: 真
04-05 19:22:54.405 15038-15038/? D/GameHelper: GameHelper: - 详细信息: ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{427a9400: android.os.BinderProxy@427b0338}, message=null}
04-0519:22:54.410 15038-15038/? D/GameHelper: GameHelper: onConnectionFailed: 将会解决,因为我们的尝试次数低于最大次数,0 < 3
04-0519:22:54.410 15038-15038/? D/GameHelper: GameHelper: onConnectionFailed: 解决问题...
04-0519:22:54.410 15038-15038/? D/GameHelper: GameHelper: resolveConnectionResult: 尝试解析结果: ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{427a9400: android.os.BinderProxy@427b0338}, message=null}
04-05 19:22:54.415 15038-15038/? D/GameHelper: GameHelper: 结果有分辨率。启动它。
04-05 19:23:06.675 15038-15038/? D/GameHelper: GameHelper: onActivityResult: req=RC_RESOLVE, resp=SIGN_IN_FAILED
04-05 19:23:06.675 15038-15038/? D/GameHelper:GameHelper:onAR:responseCode=SIGN_IN_FAILED,所以放弃。
04-05 19:23:07.090 15038-15038/? W/GameHelper:当客户端已经断开连接时调用了 disconnect()。
04-05 19:23:07.785 15038-15038/? D/GameHelper:GameHelper:通知侦听器登录失败(错误)
04-05 19:23:46.095 15038-15038/? D/GameHelper:游戏助手:onStop
04-05 19:23:46.100 15038-15038/? D/GameHelper: GameHelper: 当我们到达 onStop 时,客户端已经断开连接。
显示错误 OAuth2 id 的错误
04-05 19:22:53.700 6982-6982/? I/Choreographer: Skipped 132 frames! The application may be doing too much work on its main thread.
04-05 19:22:53.725 15233-15233/? E/SELinux: Function: selinux_android_load_priority [0], There is no sepolicy file
04-05 19:22:53.725 15233-15233/? E/SELinux: Function: selinux_android_load_priority [1], There is no sepolicy version file
04-05 19:22:53.725 15233-15233/? E/SELinux: Function: selinux_android_load_priority , loading version is VE=SEPF_GT-I9300_4.3_0016
04-05 19:22:53.725 15233-15233/? E/SELinux: selinux_android_seapp_context_reload: seapp_contexts file is loaded from /seapp_contexts
04-05 19:22:53.795 6982-14330/? I/EventLogSendingHelper: Sending log events.
04-05 19:22:53.845 2639-2639/? D/STATUSBAR-NetworkController: refreshSignalCluster: data=-1 bt=false
04-05 19:22:53.865 2335-3296/? D/SSRMv2:Monitor: SIOP:: AP = 310 (read only)
04-05 19:22:53.865 18805-28587/? W/Auth: [GetToken] GetToken failed with status code: UNREGISTERED_ON_API_CONSOLE
04-05 19:22:53.865 2639-2639/? D/STATUSBAR-IconMerger: checkOverflow(384), More:false, Req:false Child:2
04-05 19:22:53.875 26275-10131/? E/TokenRequestor: You have wrong OAuth2 related configurations, please check. Detailed error: UNREGISTERED_ON_API_CONSOLE
04-05 19:22:54.095 2335-2751/? I/ActivityManager: Process com.samsung.android.app.watchmanagerstub (pid 15158) (adj 13) has died.
04-05 19:22:54.100 2335-2829/? I/ActivityManager: Process com.sec.smartcard.pinservice (pid 15180) (adj 11) has died.
04-05 19:22:54.110 2335-2335/? I/ActivityManager: Process com.google.android.gsf.login (pid 15198) (adj 9) has died.
04-05 19:22:54.215 2335-2478/? W/LicenseLogService: log() is called by non admin
04-05 19:22:54.290 15038-15039/? D/dalvikvm: GC_CONCURRENT freed 433K, 15% free 10331K/12048K, paused 19ms+13ms, total 133ms
04-05 19:22:54.335 15038-15038/? D/GameHelper: GameHelper: onConnectionFailed `
但我检查过很多次 SHA1 密钥是正确的,一个在我的游戏 API 中,一个在玩游戏服务中。
有什么线索吗?
以下是我在游戏服务中创建游戏的步骤
- 我在 PLay COnsole 中上传了 1.6 版和实时游戏
- 打开控制台 --> 游戏服务 --> 添加新游戏
- used Tab 我还没有在游戏中使用任何 Google API
- 输入所有游戏细节等并保存游戏
- 单击创建 linked 应用程序
- 单击包名称,它向我展示了我的游戏,所以我 select 编辑了 game/correct 包名称
- 没有select实时多人游戏或反盗版等选项
- 点击保存
单击授权您的应用
- 现在它向我显示了我的游戏包名称和 SHA1 证书,它们再次出现在已上传的游戏 SHA 1 包中,当我单击确认时它显示 linked 成功并向我显示 OAuth2客户端 ID 和应用程序 ID
- 我添加了排行榜:只是现在的游戏排行榜名称并点击了保存。
- 发布和点击发布游戏及其发布
- 现在转到 Leaderboards 和 select leaderboard,单击获取资源,复制它们并保存在我的 Strings.xml 项目代码更改中,并实现了 leaderboards 和相关代码
- 在我的 phone 上执行这一切并得到上面指定的错误。
有没有我做错了什么。我怀疑我是否错过了一些步骤,例如使用 keytool
生成发布证书
keytool -list -keystore
这些步骤在 google 设置 play gae 服务的文档中,但在我的例子中它显示了正确的 SHA1 证书,所以我没有执行这个命令。
我做错了什么。任何线索
?
现在我尝试使用 keytool -list -keystore
我生成的 SHA1 与在 Play 商店上传的不同。
应该使用哪个 SHA1。一个在游戏控制台上,一个授权我的应用程序显示,或者这个生成的?
提前致谢
实际上,因为我使用的是在 Play 商店上传的 apk 的 SHA 1,但我正在测试笔记本电脑上的 apk,所以我确实需要使用我的密钥库获取 SHA 1,并且然后在 Linked 应用程序中为应用程序创建一个新的 OAuth2 客户端 ID,同样我为调试证书创建了另一个客户端。完成这些更改后,我就可以登录了。以下是解决此问题的再次步骤,我希望它能对以后的其他人有所帮助。
- 转到命令提示符并执行 cd
,通常是 C:\Program Files\Java\jdk1.7.0_72\bin
- 执行以下命令
keytool -list -keystore
应该是您在使用 android studio
生成 apk 时可能创建的 .jks 文件
- 输出的应该是你的证书指纹(SHA1):,记下来
- 同时使用以下命令生成调试证书
keytool -list -keystore C:\Users\USER.android\debug.keystore
调试证书的密码通常是 android
- 转到链接的应用程序并单击 Link 另一个应用程序,我假设我们已经链接了 1 个应用程序,即 Play 商店中可用的 apk 的 SHA 1
- 输入您的包名并点击授权应用程序
- 它将显示在 Play 商店上传的应用程序的 SHA1,但将其删除并放入您生成的 SHA 1,即步骤 3 的输出
- 同样添加另一个链接的应用程序,这次添加在第 4 步生成的调试 SHA 1
- 从左侧菜单转到游戏详细信息,然后向下滚动到 API 主机项目
部分
- 点击蓝色的项目名称
- 在左侧菜单中单击密钥,然后单击凭据
- 这里现在应该有 3 个 OAuth 2.0 客户端 ID,1 个在 Play 商店上传的 apk,1 个您使用密钥库从笔记本电脑生成的 apk,第 3 个是您的调试密钥库
再次尝试使用哪个代码,这次可以登录
这可能是重复的,但我已经尝试了互联网上所有可用的方法来解决这个问题,但到目前为止没有成功,所以再次询问。 我已经在 libGDX 中实现了一个游戏,现在使用 google 在其中玩游戏,使用 BaseGameUtils 库和 google api 方法。但是当我现在开始游戏时,我得到以下错误
failed to sign in . Please check your network connection ad try again , google play game services
我已经检查了下面提供的所有解决方案 link 但没有任何效果
Failed to sign in. Please check your network connection and try again
我也阅读了相同的故障排除指南,但仍然没有成功。
下面是我的AndroidManifext.xml
<?xml version="1.0" encoding="utf-8"?>
package="com.versionpb.game"
android:versionCode="10"
android:versionName="1.6" >
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-sdk tools:overrideLibrary="
com.google.android.gms.ads,
com.google.android.gms.ads.impl,
com.google.android.gms,
android.support.v4,
android.support.compat,
android.support.mediacompat,
android.support.coreutils,
android.support.coreui,
android.support.fragment,
com.google.android.gms.admob.license ,
com.google.android.gms.common.license,
com.google.android.gms.gass,
com.google.android.gms.gass.license,
com.google.android.gms.admob.impl.license,
com.google.example.games.basegameutils,
com.google.android.gms.games,
com.google.android.gms.games.license,
com.google.android.gms.base,
com.google.android.gms.base.license,
com.google.android.gms.tasks,
com.google.android.gms.tasks.license,
com.google.android.gms.drive,
com.google.android.gms.drive.license,
com.google.android.gms.plus,
com.google.android.gms.plus.license,
com.google.android.gms.auth,
com.google.android.gms.auth.license,
com.google.android.gms.auth.api,
com.google.android.gms.auth.api.phone,
com.google.android.gms.auth.api.phone.license
" />
<application
android:allowBackup="true"
android:icon="@mipmap/briskybirdicon"
android:label="@string/app_name"
android:theme="@style/GdxTheme">
<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"/>
<activity
android:name="com.versionpb.game.AndroidLauncher"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
这是我的 Strings.xml 文件
<?xml version="1.0" encoding="utf-8"?>
<string name="app_name">BriskyBird</string>
<!--
Google Play game services IDs.
Save this file as res/values/games-ids.xml in your project.
-->
<!-- package_name -->
<string name="package_name" translatable="false">com.versionpb.game</string>
</resources>
下面是我的ids.xl
<?xml version="1.0" encoding="utf-8"?>
<resources><!-- app_id -->
<string name="app_id" translatable="false">351XXXX97012</string>
<!-- leaderboard High Score Easy -->
<string name="leaderboard_high_score_easy"
translatable="false">CgkItNrXiJXXXXXXXX</string>
我使用了下面的 baseGameUtils github repo
https://github.com/ahmetdenizyilmaz/connect
下面是我在核心项目中创建的界面
package com.versionpb.game;
public interface PlayServices
{
public void signIn();
public void signOut();
public void rateGame();
public void unlockAchievement(String str);
public void submitScore(int highScore);
public void submitLevel(int highLevel);
public void showAchievement();
public void showScore();
public void showLevel();
public boolean isSignedIn();
}
下面是我在 AndroidLauncher 中的实现方式
package com.versionpb.game;
public class AndroidLauncher 扩展 AndroidApplication 实现 PlayServices { private static final String TAG = "AndroidLauncher";
private GameHelper gameHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gameHelper = new GameHelper(this, GameHelper.CLIENT_GAMES);
gameHelper.enableDebugLog(true);
GameHelper.GameHelperListener gameHelperListener = new GameHelper.GameHelperListener() {
@Override
public void onSignInFailed() {
}
@Override
public void onSignInSucceeded() {
}
};
RelativeLayout layout = new RelativeLayout(this);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
View gameView = initializeForView(new BriskyBird(this), config);
layout.addView(gameView);
setContentView(layout);
gameHelper.setup(gameHelperListener);
}
@Override
protected void onStart() {
super.onStart();
gameHelper.onStart(this);
}
@Override
protected void onStop() {
super.onStop();
gameHelper.onStop();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
gameHelper.onActivityResult(requestCode, resultCode, data);
}
@Override
public void signIn() {
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
System.out.println("PlayServices:Signin In");
gameHelper.beginUserInitiatedSignIn();
}
});
} catch (Exception e) {
System.out.println("PlayServices:Signin in Failed");
//Gdx.app.log("MainActivity", "Log in failed: " + e.getMessage() + ".");
}
}
@Override
public void signOut() {
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
System.out.println("PlayServices:Signin Out");
gameHelper.signOut();
}
});
} catch (Exception e) {
//Gdx.app.log("MainActivity", "Log out failed: " + e.getMessage() + ".");
}
}
@Override
public void rateGame() {
String str = "Your PlayStore Link";
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(str)));
}
@Override
public void unlockAchievement(String str) {
Games.Achievements.unlock(gameHelper.getApiClient(), str);
}
@Override
public void showAchievement() {
if (isSignedIn()) {
startActivityForResult(Games.Achievements.getAchievementsIntent(gameHelper.getApiClient()), 1);
} else {
signIn();
}
}
}
@Override
public boolean isSignedIn() {
return gameHelper.isSignedIn();
}
}
当我使用 GameHelper 过滤时记录 Cat 片段
04-05 19:22:48.405 15038-15038/? D/GameHelper: GameHelper: Debug log enabled.
04-05 19:22:50.215 15038-15038/? D/GameHelper: GameHelper: Setup: requested clients: 1
04-05 19:22:50.490 15038-15038/? D/GameHelper: GameHelper: onStart :
04-05 19:22:50.490 15038-15038/? D/GameHelper: GameHelper: Connecting
客户。 04-05 19:22:54.335 15038-15038/? D/GameHelper:GameHelper:onConnectionFailed 04-05 19:22:54.350 15038-15038/? D/GameHelper:GameHelper:连接失败: 04-05 19:22:54.400 15038-15038/? D/GameHelper:GameHelper:-代码:SIGN_IN_REQUIRED(4) 04-05 19:22:54.400 15038-15038/? D/GameHelper: GameHelper: - 可解析: 真 04-05 19:22:54.405 15038-15038/? D/GameHelper: GameHelper: - 详细信息: ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{427a9400: android.os.BinderProxy@427b0338}, message=null} 04-0519:22:54.410 15038-15038/? D/GameHelper: GameHelper: onConnectionFailed: 将会解决,因为我们的尝试次数低于最大次数,0 < 3 04-0519:22:54.410 15038-15038/? D/GameHelper: GameHelper: onConnectionFailed: 解决问题... 04-0519:22:54.410 15038-15038/? D/GameHelper: GameHelper: resolveConnectionResult: 尝试解析结果: ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{427a9400: android.os.BinderProxy@427b0338}, message=null} 04-05 19:22:54.415 15038-15038/? D/GameHelper: GameHelper: 结果有分辨率。启动它。 04-05 19:23:06.675 15038-15038/? D/GameHelper: GameHelper: onActivityResult: req=RC_RESOLVE, resp=SIGN_IN_FAILED 04-05 19:23:06.675 15038-15038/? D/GameHelper:GameHelper:onAR:responseCode=SIGN_IN_FAILED,所以放弃。 04-05 19:23:07.090 15038-15038/? W/GameHelper:当客户端已经断开连接时调用了 disconnect()。 04-05 19:23:07.785 15038-15038/? D/GameHelper:GameHelper:通知侦听器登录失败(错误) 04-05 19:23:46.095 15038-15038/? D/GameHelper:游戏助手:onStop 04-05 19:23:46.100 15038-15038/? D/GameHelper: GameHelper: 当我们到达 onStop 时,客户端已经断开连接。
显示错误 OAuth2 id 的错误
04-05 19:22:53.700 6982-6982/? I/Choreographer: Skipped 132 frames! The application may be doing too much work on its main thread.
04-05 19:22:53.725 15233-15233/? E/SELinux: Function: selinux_android_load_priority [0], There is no sepolicy file
04-05 19:22:53.725 15233-15233/? E/SELinux: Function: selinux_android_load_priority [1], There is no sepolicy version file
04-05 19:22:53.725 15233-15233/? E/SELinux: Function: selinux_android_load_priority , loading version is VE=SEPF_GT-I9300_4.3_0016
04-05 19:22:53.725 15233-15233/? E/SELinux: selinux_android_seapp_context_reload: seapp_contexts file is loaded from /seapp_contexts
04-05 19:22:53.795 6982-14330/? I/EventLogSendingHelper: Sending log events.
04-05 19:22:53.845 2639-2639/? D/STATUSBAR-NetworkController: refreshSignalCluster: data=-1 bt=false
04-05 19:22:53.865 2335-3296/? D/SSRMv2:Monitor: SIOP:: AP = 310 (read only)
04-05 19:22:53.865 18805-28587/? W/Auth: [GetToken] GetToken failed with status code: UNREGISTERED_ON_API_CONSOLE
04-05 19:22:53.865 2639-2639/? D/STATUSBAR-IconMerger: checkOverflow(384), More:false, Req:false Child:2
04-05 19:22:53.875 26275-10131/? E/TokenRequestor: You have wrong OAuth2 related configurations, please check. Detailed error: UNREGISTERED_ON_API_CONSOLE
04-05 19:22:54.095 2335-2751/? I/ActivityManager: Process com.samsung.android.app.watchmanagerstub (pid 15158) (adj 13) has died.
04-05 19:22:54.100 2335-2829/? I/ActivityManager: Process com.sec.smartcard.pinservice (pid 15180) (adj 11) has died.
04-05 19:22:54.110 2335-2335/? I/ActivityManager: Process com.google.android.gsf.login (pid 15198) (adj 9) has died.
04-05 19:22:54.215 2335-2478/? W/LicenseLogService: log() is called by non admin
04-05 19:22:54.290 15038-15039/? D/dalvikvm: GC_CONCURRENT freed 433K, 15% free 10331K/12048K, paused 19ms+13ms, total 133ms
04-05 19:22:54.335 15038-15038/? D/GameHelper: GameHelper: onConnectionFailed `
但我检查过很多次 SHA1 密钥是正确的,一个在我的游戏 API 中,一个在玩游戏服务中。
有什么线索吗?
以下是我在游戏服务中创建游戏的步骤
- 我在 PLay COnsole 中上传了 1.6 版和实时游戏
- 打开控制台 --> 游戏服务 --> 添加新游戏
- used Tab 我还没有在游戏中使用任何 Google API
- 输入所有游戏细节等并保存游戏
- 单击创建 linked 应用程序
- 单击包名称,它向我展示了我的游戏,所以我 select 编辑了 game/correct 包名称
- 没有select实时多人游戏或反盗版等选项
- 点击保存 单击授权您的应用
- 现在它向我显示了我的游戏包名称和 SHA1 证书,它们再次出现在已上传的游戏 SHA 1 包中,当我单击确认时它显示 linked 成功并向我显示 OAuth2客户端 ID 和应用程序 ID
- 我添加了排行榜:只是现在的游戏排行榜名称并点击了保存。
- 发布和点击发布游戏及其发布
- 现在转到 Leaderboards 和 select leaderboard,单击获取资源,复制它们并保存在我的 Strings.xml 项目代码更改中,并实现了 leaderboards 和相关代码
- 在我的 phone 上执行这一切并得到上面指定的错误。
有没有我做错了什么。我怀疑我是否错过了一些步骤,例如使用 keytool
生成发布证书keytool -list -keystore
这些步骤在 google 设置 play gae 服务的文档中,但在我的例子中它显示了正确的 SHA1 证书,所以我没有执行这个命令。
我做错了什么。任何线索
?
现在我尝试使用 keytool -list -keystore
我生成的 SHA1 与在 Play 商店上传的不同。
应该使用哪个 SHA1。一个在游戏控制台上,一个授权我的应用程序显示,或者这个生成的?
提前致谢
实际上,因为我使用的是在 Play 商店上传的 apk 的 SHA 1,但我正在测试笔记本电脑上的 apk,所以我确实需要使用我的密钥库获取 SHA 1,并且然后在 Linked 应用程序中为应用程序创建一个新的 OAuth2 客户端 ID,同样我为调试证书创建了另一个客户端。完成这些更改后,我就可以登录了。以下是解决此问题的再次步骤,我希望它能对以后的其他人有所帮助。
- 转到命令提示符并执行 cd
,通常是 C:\Program Files\Java\jdk1.7.0_72\bin - 执行以下命令 keytool -list -keystore 应该是您在使用 android studio 生成 apk 时可能创建的 .jks 文件
- 输出的应该是你的证书指纹(SHA1):,记下来
- 同时使用以下命令生成调试证书 keytool -list -keystore C:\Users\USER.android\debug.keystore 调试证书的密码通常是 android
- 转到链接的应用程序并单击 Link 另一个应用程序,我假设我们已经链接了 1 个应用程序,即 Play 商店中可用的 apk 的 SHA 1
- 输入您的包名并点击授权应用程序
- 它将显示在 Play 商店上传的应用程序的 SHA1,但将其删除并放入您生成的 SHA 1,即步骤 3 的输出
- 同样添加另一个链接的应用程序,这次添加在第 4 步生成的调试 SHA 1
- 从左侧菜单转到游戏详细信息,然后向下滚动到 API 主机项目 部分
- 点击蓝色的项目名称
- 在左侧菜单中单击密钥,然后单击凭据
- 这里现在应该有 3 个 OAuth 2.0 客户端 ID,1 个在 Play 商店上传的 apk,1 个您使用密钥库从笔记本电脑生成的 apk,第 3 个是您的调试密钥库
再次尝试使用哪个代码,这次可以登录