登录失败。请检查您的网络连接广告重试,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 中,一个在玩游戏服务中。

有什么线索吗?

以下是我在游戏服务中创建游戏的步骤

  1. 我在 PLay COnsole 中上传了 1.6 版和实时游戏
  2. 打开控制台 --> 游戏服务 --> 添加新游戏
  3. used Tab 我还没有在游戏中使用任何 Google API
  4. 输入所有游戏细节等并保存游戏
  5. 单击创建 linked 应用程序
  6. 单击包名称,它向我展示了我的游戏,所以我 select 编辑了 game/correct 包名称
  7. 没有select实时多人游戏或反盗版等选项
  8. 点击保存 单击授权您的应用
  9. 现在它向我显示了我的游戏包名称和 SHA1 证书,它们再次出现在已上传的游戏 SHA 1 包中,当我单击确认时它显示 linked 成功并向我显示 OAuth2客户端 ID 和应用程序 ID
  10. 我添加了排行榜:只是现在的游戏排行榜名称并点击了保存。
  11. 发布和点击发布游戏及其发布
  12. 现在转到 Leaderboards 和 select leaderboard,单击获取资源,复制它们并保存在我的 Strings.xml 项目代码更改中,并实现了 leaderboards 和相关代码
  13. 在我的 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,同样我为调试证书创建了另一个客户端。完成这些更改后,我就可以登录了。以下是解决此问题的再次步骤,我希望它能对以后的其他人有所帮助。

  1. 转到命令提示符并执行 cd ,通常是 C:\Program Files\Java\jdk1.7.0_72\bin
  2. 执行以下命令 keytool -list -keystore 应该是您在使用 android studio
  3. 生成 apk 时可能创建的 .jks 文件
  4. 输出的应该是你的证书指纹(SHA1):,记下来
  5. 同时使用以下命令生成调试证书 keytool -list -keystore C:\Users\USER.android\debug.keystore 调试证书的密码通常是 android
  6. 转到链接的应用程序并单击 Link 另一个应用程序,我假设我们已经链接了 1 个应用程序,即 Play 商店中可用的 apk 的 SHA 1
  7. 输入您的包名并点击授权应用程序
  8. 它将显示在 Play 商店上传的应用程序的 SHA1,但将其删除并放入您生成的 SHA 1,即步骤 3 的输出
  9. 同样添加另一个链接的应用程序,这次添加在第 4 步生成的调试 SHA 1
  10. 从左侧菜单转到游戏详细信息,然后向下滚动到 API 主机项目
  11. 部分
  12. 点击蓝色的项目名称
  13. 在左侧菜单中单击密钥,然后单击凭据
  14. 这里现在应该有 3 个 OAuth 2.0 客户端 ID,1 个在 Play 商店上传的 apk,1 个您使用密钥库从笔记本电脑生成的 apk,第 3 个是您的调试密钥库

再次尝试使用哪个代码,这次可以登录