Почему тестовое приложение для многопользовательской игры в реальном времени ButtonClicker2000 выходит из строя при запуске?

StackOverflow https://stackoverflow.com//questions/24061333

Вопрос

Я хочу научиться разработке многопользовательских игр в реальном времени с использованием сервисов Google Play.

Итак, я только что запустил ButtonClicker2000 от Google, чтобы начать изучать многопользовательские игры для Android.И ниже приведены шаги, которым я последовал :

  • Шаг 1 :В каталоге, где я храню все свои проекты eclipse, я сделал

    git-клон https://github.com/playgameservices/android-samples.git

  • Шаг 2 :обновил свои сервисы Google Play до последней версии по состоянию на 4 июня 2014 года

  • Шаг 3 :импортировал проект библиотеки сервисов Google Play Services в мое рабочее пространство.

  • Шаг 4 :импортировал BaseGameUtils в качестве библиотеки и добавил к ней ссылку на сервисы Google Play .

Все работало просто отлично до описанных выше шагов.

  • Шаг 5 :импортированный проект ButtonClicker2000 из каталога Android-samples, который я клонировал из github и добавил библиотеку BaseGameUtils в качестве ссылки на нее.И это выдало мне ошибку компиляции для класса GamesClient, который сейчас устарел.

Итак, я просто отредактировал MainActivity.java ButtonClicker2000 следующим образом:

Поскольку класс 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.Но это сбой только при запуске.

Примечание :Я создал приложение на своей консоли разработчика, которое еще не опубликовано, а также добавил тестовое электронное письмо.Также изменил название своего пакета.Я также включил опцию многопользовательской игры в реальном времени на "да" в консоли разработчика.

РЕГИСТРИРУЙТЕ СВЕДЕНИЯ ОБ ОШИБКЕ 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.Я надеюсь, что этот вопрос поможет им успешно запустить ButtonClicker2000, чтобы понять мультиплеер в реальном времени на Android с последней версией библиотеки сервисов Google Play, т.е. версией 17 на данный момент.

Сейчас он работает просто великолепно!!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top