简体   繁体   English

libGDX Google Play游戏服务 - Android

[英]libGDX Google Play Game Services - Android

I am trying to implement Google play Game Services into libGDX project. 我正在尝试将Google Play游戏服务实施到libGDX项目中。 In my android project, the MainActivity looks like this: 在我的android项目中,MainActivity看起来像这样:

public class MainActivity extends AndroidApplication implements
    GameHelper.GameHelperListener, ActionResolver {

GameHelper gameHelper;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    gameHelper = new GameHelper(this, GameHelper.CLIENT_ALL);
    gameHelper.enableDebugLog(true);

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);

    AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
    cfg.useGL20 = false;

    initialize(new CJSGame(this), cfg);
    gameHelper.setup(this);

}

@Override
public void onStart() {
    super.onStart();
    gameHelper.onStart(this);
}

@Override
public void onStop() {
    super.onStop();
    gameHelper.onStop();
}

    @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    gameHelper.onActivityResult(requestCode, resultCode, data);
}

@Override
public boolean getSignedInGPGS() {
    // TODO Auto-generated method stub
    return gameHelper.isSignedIn();
}

@Override
public void loginGPGS() {
    // TODO Auto-generated method stub
    try {
        runOnUiThread(new Runnable() {
            public void run() {
                gameHelper.beginUserInitiatedSignIn();
            }
        });
    } catch (final Exception ex) {
    }
}

@Override
public void submitScoreGPGS(int score) {
    // TODO Auto-generated method stub
    Games.Leaderboards.submitScore(gameHelper.getApiClient(),
            getString(R.string.leaderboard1_id), score);
}

@Override
public void unlockAchievementGPGS(String achievementId) {
    // TODO Auto-generated method stub
    Games.Achievements.unlock(gameHelper.getApiClient(), achievementId);
}

@Override
public void getLeaderboardGPGS() {
    // TODO Auto-generated method stub
    startActivityForResult(
            Games.Leaderboards.getLeaderboardIntent(
                    gameHelper.getApiClient(),
                    getString(R.string.leaderboard1_id)), 100);
}

@Override
public void getAchievementsGPGS() {
    // TODO Auto-generated method stub
    startActivityForResult(
            Games.Achievements.getAchievementsIntent(gameHelper
                    .getApiClient()), 101);
}

@Override
public void onSignInFailed() {
    // TODO Auto-generated method stub
    System.out.println("Sign in failed");
}

@Override
public void onSignInSucceeded() {
    // TODO Auto-generated method stub
    System.out.println("Sign in succeeded");
}
}

When I try to run the application on android device, I end up with IllegalStateException error in the logcat: 当我尝试在Android设备上运行应用程序时,我最终在logcat中出现IllegalStateException错误:

03-13 10:23:40.766: E/AndroidRuntime(31339): FATAL EXCEPTION: main
03-13 10:23:40.766: E/AndroidRuntime(31339): java.lang.IllegalStateException: A fatal developer error has occurred. Check the logs for further information.
03-13 10:23:40.766: E/AndroidRuntime(31339):    at com.google.android.gms.internal.dw$h.b(Unknown Source)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at  com.google.android.gms.internal.dw$h.b(Unknown Source)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at com.google.android.gms.internal.dw$b.bR(Unknown Source)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at com.google.android.gms.internal.dw$a.handleMessage(Unknown Source)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at android.os.Handler.dispatchMessage(Handler.java:99)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at android.os.Looper.loop(Looper.java:137)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at android.app.ActivityThread.main(ActivityThread.java:5419)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at java.lang.reflect.Method.invokeNative(Native Method)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at java.lang.reflect.Method.invoke(Method.java:525)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at dalvik.system.NativeStart.main(Native Method)

Any Help please?? 请帮忙吗?

Edit: I already have the meta-data tag in the manifest file 编辑:我已经在清单文件中有元数据标记

<meta-data android:name="com.google.android.gms.games.APP_ID"
    android:value="@string/app_id" />

Solved, I enabled adb logcat and found that there is another metadata tag missing in the manifest file: 解决了,我启用了adb logcat,发现清单文件中缺少另一个元数据标记:

<meta-data android:name="com.google.android.gms.appstate.APP_ID"
    android:value="@string/app_id" />

Just added this tag and it is working properly. 刚刚添加了这个标签,它运行正常。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 libGDX-Android Studio中的Google Play游戏服务 - libGDX - Google Play Game Services in Android Studio Libgdx游戏与谷歌在Android应用程序问题中玩游戏服务 - Libgdx game with Google play game services in android app problems 在iOS和Android上使用Google Play游戏服务的Libgdx游戏 - Libgdx game using Google Play Game Services on iOS and Android 如何在LibGdx中使用Google Play游戏服务 - How to use Google Play Game Services with LibGdx 带有Google Play游戏服务的LIBGDX游戏配置错误 - LIBGDX game configuration with google Play game services Errors Android libgdx和Google Game Services退出2 - Android libgdx and Google Game Services exited with a 2 com.google.android.gms在libgdx游戏中使用播放服务时会泄漏内存,并使其延迟 - com.google.android.gms leaks memory while using play services in libgdx game and makes it laggy 从Google Play游戏服务Libgdx中的Icon Uri获取纹理 - Get Texture from google play game services Icon Uri in Libgdx Google Play游戏服务和libGDX“必须使用startActivityForResult启动SignInActivity” - Google Play Game Services & libGDX “SignInActivity must be started with startActivityForResult” 应用程序配置不正确,无法通过libgdx游戏使用Google Play服务 - App not correctly configured to use Google Play services with a libgdx game
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM