我想使用Google Play服务学习实时多人游戏开发。

所以我刚刚开始谷歌的ButtonClicker2000开始学习Android的多人游戏。 以下是我跟随的步骤:

  • 步骤1:在我保留所有Eclipse项目的目录中我做了

    git clone https://github.com/playgameservices/android-samples.git

  • 步骤2:将Google Play服务更新为截至6月4日的最新版本.4.2014

  • 步骤3:将Google Play Services Library项目导入我的工作空间。

  • 步骤4:导入的基础符号作为库并添加了Google Play服务的引用 到它。

所有工作都很棒,直到上面的步骤。

  • 步骤5:来自android样本目录的导入buttonclicker2000项目,我 从Github克隆并添加了基础蛋白质库作为参考。和 它给了我现在弃用的GamessClient类的编译错误。
所以我刚刚编辑了ButtonClicker2000的MainActivity.java,如下所示:

因为GamesClient类是永久删除的,那些语句

GamesClient.EXTRA_PLAYERS 
GamesClient.EXTRA_MIN_AUTOMATCH_PLAYERS 
GamesClient.EXTRA_MAX_AUTOMATCH_PLAYERS
GamesClient.EXTRA_INVITATION
GamesClient.STATUS_OK
.

替换
Games.EXTRA_PLAYERS_IDS
Multiplayer.EXTRA_MIN_AUTOMATCH_PLAYERS
Multiplayer.EXTRA_MAX_AUTOMATCH_PLAYERS
Multiplayer.EXTRA_INVITATION
GamesStatusCodes.STATUS_OK
.

一切都很好,现在我的代码被遵守所以尝试在我的Nexus 4设备上运行游戏。但是只有在启动时崩溃。

注意:我在我的开发人员控制台上创建了一个应用程序,该应用程序未发布,还添加了测试电子邮件。已更改了我的包名称.I在Developer控制台上也使RealTime MultiPlayer选项已启用为YES。

log cat错误详细信息

06-05 17:42:37.195: W/BaseGameActivity(30121): BaseGameActivity.enabledDebugLog(bool,String) is deprecated. Use enableDebugLog(boolean)
06-05 17:42:37.195: D/GameHelper(30121): GameHelper: Debug log enabled.
06-05 17:42:37.195: D/GameHelper(30121): GameHelper: Setup: requested clients: 1
06-05 17:42:37.215: W/PopupManager(30121): You have not specified a View to use as content view for popups. Falling back to the Activity content view which may not work properly in future versions of the API. Use setViewForPopups() to set your content view.
06-05 17:42:37.275: D/dalvikvm(30121): GC_FOR_ALLOC freed 133K, 2% free 9330K/9496K, paused 16ms, total 17ms
06-05 17:42:37.305: D/GameHelper(30121): GameHelper: onStart
06-05 17:42:37.305: D/GameHelper(30121): GameHelper: Connecting client.
06-05 17:42:37.375: I/Adreno-EGL(30121): <qeglDrvAPI_eglInitialize:320>: EGL 1.4 QUALCOMM Build: I0404c4692afb8623f95c43aeb6d5e13ed4b30ddbDate: 11/06/13
06-05 17:42:37.405: D/OpenGLRenderer(30121): Enabling debug mode 0
06-05 17:42:37.405: D/AndroidRuntime(30121): Shutting down VM
06-05 17:42:37.405: W/dalvikvm(30121): threadid=1: thread exiting with uncaught exception (group=0x41573ba8)
06-05 17:42:37.415: E/AndroidRuntime(30121): FATAL EXCEPTION: main
06-05 17:42:37.415: E/AndroidRuntime(30121): Process: com.testapp.buttonclicklistnermtapp, PID: 30121
06-05 17:42:37.415: E/AndroidRuntime(30121): java.lang.IllegalStateException: A fatal developer error has occurred. Check the logs for further information.
06-05 17:42:37.415: E/AndroidRuntime(30121):    at com.google.android.gms.internal.ff$h.b(Unknown Source)
06-05 17:42:37.415: E/AndroidRuntime(30121):    at com.google.android.gms.internal.ff$h.a(Unknown Source)
06-05 17:42:37.415: E/AndroidRuntime(30121):    at com.google.android.gms.internal.ff$b.eN(Unknown Source)
06-05 17:42:37.415: E/AndroidRuntime(30121):    at com.google.android.gms.internal.ff$a.handleMessage(Unknown Source)
06-05 17:42:37.415: E/AndroidRuntime(30121):    at android.os.Handler.dispatchMessage(Handler.java:102)
06-05 17:42:37.415: E/AndroidRuntime(30121):    at android.os.Looper.loop(Looper.java:136)
06-05 17:42:37.415: E/AndroidRuntime(30121):    at android.app.ActivityThread.main(ActivityThread.java:5017)
06-05 17:42:37.415: E/AndroidRuntime(30121):    at java.lang.reflect.Method.invokeNative(Native Method)
06-05 17:42:37.415: E/AndroidRuntime(30121):    at java.lang.reflect.Method.invoke(Method.java:515)
06-05 17:42:37.415: E/AndroidRuntime(30121):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
06-05 17:42:37.415: E/AndroidRuntime(30121):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
06-05 17:42:37.415: E/AndroidRuntime(30121):    at dalvik.system.NativeStart.main(Native Method)
06-05 17:44:02.356: W/BaseGameActivity(30741): BaseGameActivity.enabledDebugLog(bool,String) is deprecated. Use enableDebugLog(boolean)
06-05 17:44:02.356: D/GameHelper(30741): GameHelper: Debug log enabled.
06-05 17:44:02.356: D/GameHelper(30741): GameHelper: Setup: requested clients: 1
06-05 17:44:02.376: W/PopupManager(30741): You have not specified a View to use as content view for popups. Falling back to the Activity content view which may not work properly in future versions of the API. Use setViewForPopups() to set your content view.
06-05 17:44:02.436: D/dalvikvm(30741): GC_FOR_ALLOC freed 125K, 2% free 9330K/9488K, paused 19ms, total 19ms
06-05 17:44:02.466: D/GameHelper(30741): GameHelper: onStart
06-05 17:44:02.466: D/GameHelper(30741): GameHelper: Connecting client.
06-05 17:44:02.556: I/Adreno-EGL(30741): <qeglDrvAPI_eglInitialize:320>: EGL 1.4 QUALCOMM Build: I0404c4692afb8623f95c43aeb6d5e13ed4b30ddbDate: 11/06/13
06-05 17:44:02.636: D/OpenGLRenderer(30741): Enabling debug mode 0
06-05 17:44:02.636: D/AndroidRuntime(30741): Shutting down VM
06-05 17:44:02.636: W/dalvikvm(30741): threadid=1: thread exiting with uncaught exception (group=0x41573ba8)
06-05 17:44:02.646: E/AndroidRuntime(30741): FATAL EXCEPTION: main
06-05 17:44:02.646: E/AndroidRuntime(30741): Process: com.testapp.buttonclicklistnermtapp, PID: 30741
06-05 17:44:02.646: E/AndroidRuntime(30741): java.lang.IllegalStateException: A fatal developer error has occurred. Check the logs for further information.
06-05 17:44:02.646: E/AndroidRuntime(30741):    at com.google.android.gms.internal.ff$h.b(Unknown Source)
06-05 17:44:02.646: E/AndroidRuntime(30741):    at com.google.android.gms.internal.ff$h.a(Unknown Source)
06-05 17:44:02.646: E/AndroidRuntime(30741):    at com.google.android.gms.internal.ff$b.eN(Unknown Source)
06-05 17:44:02.646: E/AndroidRuntime(30741):    at com.google.android.gms.internal.ff$a.handleMessage(Unknown Source)
06-05 17:44:02.646: E/AndroidRuntime(30741):    at android.os.Handler.dispatchMessage(Handler.java:102)
06-05 17:44:02.646: E/AndroidRuntime(30741):    at android.os.Looper.loop(Looper.java:136)
06-05 17:44:02.646: E/AndroidRuntime(30741):    at android.app.ActivityThread.main(ActivityThread.java:5017)
06-05 17:44:02.646: E/AndroidRuntime(30741):    at java.lang.reflect.Method.invokeNative(Native Method)
06-05 17:44:02.646: E/AndroidRuntime(30741):    at java.lang.reflect.Method.invoke(Method.java:515)
06-05 17:44:02.646: E/AndroidRuntime(30741):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
06-05 17:44:02.646: E/AndroidRuntime(30741):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
06-05 17:44:02.646: E/AndroidRuntime(30741):    at dalvik.system.NativeStart.main(Native Method)
.

有帮助吗?

解决方案

在更新buttonclicker的mainActivity.java时获得了我制作的错误 我所做的错误是做

setRequestedClients(BaseGameActivity.CLIENT_GAMES |        
          BaseGameActivity.CLIENT_APPSTATE);
.

之前

super.onCreate(savedInstanceState);
.

并休息一切都可以。

但是在搜索与实时多人多人的详细信息时,我发现很多人都获得了一些或其他问题,因为buttonclicker示例不是由google更新.I希望这个问题能帮助他们成功地运行Buttonclicker2000来理解实时多人游戏在Android上进行了最新版本的Google Play服务库,即截至现在的修订17。

它现在绝对工作!!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top