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

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

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

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

    git clone 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. Но он вылетает только при запуске.

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

ДЕТАЛИ ОШИБКИ 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)

person vivekporwal04    schedule 05.06.2014    source источник
comment
Вы изменили значение app_id в src/main/res/values/ids.xml? Вам нужно поместить туда свой идентификатор приложения (из консоли разработчика).   -  person matiash    schedule 17.06.2014
comment
@matiash Спасибо, что посмотрели! Да, я изменил значение app_id. И у меня возникла проблема, и я ответил на свой вопрос.   -  person vivekporwal04    schedule 19.06.2014


Ответы (1)


Получил ошибку, которую я сделал при обновлении MainActivity.java ButtonClicker, и ошибка, которую я сделал, заключалась в том, чтобы сделать

setRequestedClients(BaseGameActivity.CLIENT_GAMES |        
          BaseGameActivity.CLIENT_APPSTATE);

до

super.onCreate(savedInstanceState);

А в остальном все ок.

Но при поиске деталей, связанных с многопользовательской игрой в реальном времени, я обнаружил, что у многих людей возникают те или иные проблемы, поскольку пример ButtonClicker не обновляется Google. Я надеюсь, что этот вопрос поможет им успешно запустить ButtonClicker2000, чтобы понять многопользовательскую игру в реальном времени на Android с помощью последняя версия библиотеки сервисов Google Play, то есть версия 17 на данный момент.

Теперь он работает абсолютно отлично!

person vivekporwal04    schedule 19.06.2014