使用 google Play 游戏服务配置 LIBGDX 游戏错误

Posted

技术标签:

【中文标题】使用 google Play 游戏服务配置 LIBGDX 游戏错误【英文标题】:LIBGDX game configuration with google Play game services Errors 【发布时间】:2015-05-08 23:27:54 【问题描述】:

我是 Libgdx 和 android 的初学者。 我开发了一个小游戏。 我尝试使用超级跳线示例在https://github.com/TheInvader360/libgdx-gameservices-tutorial 跟进 Google 玩游戏服务教程。我还检查了 Google 开发人员文档中的所有内容。我也遵循了本教程 http://forum.xda-developers.com/android/apps-games/setting-eclipse-to-google-play-game-t2889796 加上堆栈溢出。

一个。当应用程序是来自 Eclipse 的 EXPORT 时,SHA1 密钥相同。

b.客户端ID由O Auth2.0生成

c。应用包名相同。

d。我的游戏已经发布了。

e。我还发布了 Google play 游戏服务。(它写在 Google 开发者文档中,如果发布了应用程序,那么也会发布游戏服务)

f。我将 Eclipse 生成的签名 apk 上传到我的设备上进行测试。 但没有运气。

我得到的错误是“登录失败。请检查您的网络连接并重试。

我的应用程序清单文件是

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="...."
    android:versionCode="1"
    android:versionName="1.1" >

    <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="20" />


     <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <application
        ......>
     <activity ....../>
        <meta-data
    android:name="com.google.android.gms.analytics.globalConfigResource"
    android:resource="@xml/global_tracker" />
    <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"/>
    </application>
</manifest>

我在我的主要 Android 类中给出的配置是

public class AndroidLauncher extends AndroidApplication implements
    ActionResolver, GameHelperListener ,          GoogleApiClient.ConnectionCallbacks, 
    GoogleApiClient.OnConnectionFailedListener 

    private GameHelper gameHelper;
    private GoogleApiClient client;

    @Override
   protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
              client = new GoogleApiClient.Builder(this)
                .addApi(Games.API)
                .addScope(Games.SCOPE_GAMES)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .build();


           GameHelper.GameHelperListener gameHelperListener = new GameHelper.GameHelperListener() 
              @Override
              public void onSignInFailed() 
                  Log.i("Game Helper", "Sign in failed");
              

              @Override
              public void onSignInSucceeded() 
                  Log.i("Game Helper", "Sign in succeeded");
              
          ;



      gameHelper = new GameHelper(this, GameHelper.CLIENT_GAMES); 


      gameHelper.enableDebugLog(true);



           AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
            initialize(new MainGame(this) , config);                                                                
        gameHelper.setup(gameHelperListener );

          

     @Override
     public void onStart() 
         super.onStart();
            gameHelper.onStart(this);
        client.connect();
      

      @Override
    public void onStop() 
      super.onStop();

      gameHelper.onStop();
      client.disconnect();
      


     @Override
        public void onActivityResult(int request, int response, Intent data)      
       super.onActivityResult(request, response, data);
        gameHelper.onActivityResult(request, response, data);
      

      @Override
      public boolean getSignedInGPGS() 

         return gameHelper.isSignedIn();
      

        @Override
      public void loginGPGS() 
       try 
          runOnUiThread(new Runnable() 
              public void run() 
                  gameHelper.beginUserInitiatedSignIn();
              
            );
        catch (final Exception ex) 
                   
     

      @Override
     public void unlockAchievementGPGS(String achievementId) 

         Games.Achievements.unlock(gameHelper.getApiClient(), achievementId);

     

      @Override
       public void getLeaderboardGPGS() 

     

     @Override
      public void getAchievementsGPGS() 
       if (gameHelper.isSignedIn()) 
        startActivityForResult(
                  Games.Achievements.getAchievementsIntent(gameHelper
                        .getApiClient()), 101);
              else if (!gameHelper.isConnecting()) 
               loginGPGS();
            

            

        @Override
       public void onSignInFailed() 
         System.out.println("Sign in succeeded");

       

      @Override
      public void onSignInSucceeded() 
           System.out.println("Sign in failed");

       

       @Override
       public void submitScoreGPGS(int score) 
           // TODO Auto-generated method stub

       

      @Override
        public void onConnectionFailed(ConnectionResult arg0) 
          // TODO Auto-generated method stub

       

       @Override
        public void onConnected(Bundle arg0) 
              Log.i("Google API", "Connection Complete");

       

        @Override
        public void onConnectionSuspended(int arg0) 
            Log.i("Google API", "Connection Failed: " );

        

          

我在资源文件夹中的字符串文件中给出了完全相同的应用程序 ID。 我不明白为什么我会收到此错误。

动作解析器接口具有指定的所有方法。主游戏类启动此接口。

在游戏结束时,我发送分数以解锁成就。 我的游戏中只有成就。 我可以提供任何其他代码,但请帮助我。

【问题讨论】:

【参考方案1】:

以下几点可能对您有所帮助。

实际发布开发者控制台上的更改需要几个小时。几小时后测试游戏。

您无需发布即可对其进行测试。您可以通过在开发者控制台中添加测试人员帐户来做到这一点。

您无法使用开发者帐户“测试”Google Play 服务。为此,您将需要另一个帐户。

编辑: 非常重要:

确保您在 Android 项目中为 AndroidManifest.xml 添加了所需的权限。

【讨论】:

@Zohaib 我在 Google 开发者文档中读到,如果应用程序已发布,那么游戏服务应该发布...在疑难解答 google play 服务页面上。 我的游戏发布已经过去了几个小时,超过 2 天。我刚刚创建了一个虚拟测试人员帐户。 n 最终得到同样的错误。 **登录失败。请检查您的网络连接,然后重试。 ** @AimanBatul 你是否在你的android项目的AndroidManifest.xml中添加了所需的权限? 是的,我添加了互联网权限,然后添加了元标记,包括应用程序 ID 和游戏服务 @AimanBatul 你试过在多个设备上测试它吗?如果还是不行,我建议你按照这里的教程来代替:fortheloss.org/tutorial-set-up-google-services-with-libgdx 它比你目前关注的更容易。

以上是关于使用 google Play 游戏服务配置 LIBGDX 游戏错误的主要内容,如果未能解决你的问题,请参考以下文章

Android libGDX:使用 google-play-services_lib 时 Eclipse 崩溃

实施 Google Play 游戏时出错

打开游戏的时候提示没有google play 服务怎么办?

使用 google Play 游戏服务配置 LIBGDX 游戏错误

使用“Google Play 游戏服务”玩游戏时突然断开连接

无法使用 Google Play 游戏服务创建房间