libGDX谷歌玩游戏服务

编程入门 行业动态 更新时间:2024-10-27 21:21:26
本文介绍了libGDX谷歌玩游戏服务 - 安卓的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我想实现谷歌玩游戏服务到libGDX项目。 在我的Andr​​oid项目中,MainActivity看起来是这样的:

公共类MainActivity扩展AndroidApplication工具     GameHelper.GameHelperListener,ActionResolver { GameHelper gameHelper; @覆盖 公共无效的onCreate(包savedInstanceState){     super.onCreate(savedInstanceState);     gameHelper =新GameHelper(这一点,GameHelper.CLIENT_ALL);     gameHelper.enableDebugLog(真正的);     。getWindow()addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);     AndroidApplicationConfiguration CFG =新AndroidApplicationConfiguration();     cfg.useGL20 = FALSE;     初始化(新CJSGame(本),CFG);     gameHelper.setup(本); } @覆盖 公共无效的OnStart(){     super.onStart();     gameHelper.onStart(本); } @覆盖 公共无效的onStop(){     super.onStop();     gameHelper.onStop(); }     @覆盖 保护无效onActivityResult(INT申请code,INT结果code,意图数据){     // TODO自动生成方法存根     super.onActivityResult(要求code,因此code,数据);     gameHelper.onActivityResult(要求code,因此code,数据); } @覆盖 公共布尔getSignedInGPGS(){     // TODO自动生成方法存根     返回gameHelper.isSignedIn(); } @覆盖 公共无效loginGPGS(){     // TODO自动生成方法存根     尝试 {         runOnUiThread(新的Runnable(){             公共无效的run(){                 gameHelper.beginUserInitiatedSignIn();             }         });     }赶上(最终例外前){     } } @覆盖 公共无效submitScoreGPGS(INT得分){     // TODO自动生成方法存根     Games.Leaderboards.submitScore(gameHelper.getApiClient(),             的getString(R.string.leaderboard1_id),得分); } @覆盖 公共无效unlockAchievementGPGS(字符串achievementId){     // TODO自动生成方法存根     Games.Achievements.unlock(gameHelper.getApiClient(),achievementId); } @覆盖 公共无效getLeaderboardGPGS(){     // TODO自动生成方法存根     startActivityForResult(             Games.Leaderboards.getLeaderboardIntent(                     gameHelper.getApiClient(),                     的getString(R.string.leaderboard1_id)),100); } @覆盖 公共无效getAchievementsGPGS(){     // TODO自动生成方法存根     startActivityForResult(             Games.Achievements.getAchievementsIntent(gameHelper                     .getApiClient()),101); } @覆盖 公共无效onSignInFailed(){     // TODO自动生成方法存根     的System.out.println(登录失败); } @覆盖 公共无效onSignInSucceeded(){     // TODO自动生成方法存根     的System.out.println(登录成功); } }

当我尝试运行在Android设备的应用程序,我结束了在logcat中IllegalStateException异常错误:

10月3日至13号:23:40.766:E / AndroidRuntime(31339):致命异常:主要 10月三号至13号:23:40.766:E / AndroidRuntime(31339):java.lang.IllegalStateException:发生致命开发商错误。检查日志以获取更多信息。 10月三号至13号:23:40.766:E / AndroidRuntime(31339):在com.google.android.gms.internal.dw $ HB(来源不明) 10月三号至13号:23:40.766:E / AndroidRuntime(31339):在com.google.android.gms.internal.dw $ HB(来源不明) 10月三号至13号:23:40.766:E / AndroidRuntime(31339):在com.google.android.gms.internal.dw $ b.bR(来源不明) 10月三号至13号:23:40.766:E / AndroidRuntime(31339):在com.google.android.gms.internal.dw $ a.handleMessage(来源不明) 10月三号至13号:23:40.766:E / AndroidRuntime(31339):在android.os.Handler.dispatchMessage(Handler.java:99) 10月三号至13号:23:40.766:E / AndroidRuntime(31339):在android.os.Looper.loop(Looper.java:137) 10月三号至13号:23:40.766:E / AndroidRuntime(31339):在android.app.ActivityThread.main(ActivityThread.java:5419) 10月三号至13号:23:40.766:E / AndroidRuntime(31339):在java.lang.reflect.Method.invokeNative(本机方法) 10月三号至13号:23:40.766:E / AndroidRuntime(31339):在java.lang.reflect.Method.invoke(Method.java:525) 10月三号至13号:23:40.766:E / AndroidRuntime(31339):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1187) 10月三号至13号:23:40.766:E / AndroidRuntime(31339):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) 10月三号至13号:23:40.766:E / AndroidRuntime(31339):在dalvik.system.NativeStart.main(本机方法)

任何帮助,请??

编辑:我已经有元数据标签清单文件

<元数据的android:NAME =com.google.android.gms.games.APP_ID     机器人:值=@字符串/ APP_ID/>

解决方案

解决了,我启用了亚行logcat,发现还有另外一个元数据标签清单文件丢失:

<元数据的android:NAME =com.google.android.gms.appstate.APP_ID     机器人:值=@字符串/ APP_ID/>

刚刚加入这个标记,它工作正常。

I am trying to implement Google play Game Services into libGDX project. In my android project, the MainActivity looks like this:

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:

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:

<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.

更多推荐

libGDX谷歌玩游戏服务

本文发布于:2023-06-04 19:05:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/503302.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:玩游戏   libGDX

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!