Защо тестовото приложение за мултиплейър игра в реално време ButtonClicker2000 се срива по време на стартиране?

Искам да науча разработването на мултиплейър игри в реално време с помощта на услугите на Google Play.

Така че току-що започнах с ButtonClicker2000 от Google, за да започна да изучавам мултиплейър игри за android. И по-долу са стъпките, които следвах:

  • Стъпка 1: В директорията, където съхранявам всичките си проекти на eclipse, които направих

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

  • Стъпка 2: Актуализирах моите услуги за Google Play до най-новата версия от 4 юни 2014 г

  • Стъпка 3: импортиран проект на библиотеката на услугите на Google Play за моето работно пространство.

  • Стъпка 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. Но се срива само при стартиране.

Забележка: Създадох приложение в моята конзола за разработчици, което не е публикувано и също добавих имейл за тестване. Също така промених името на пакета си. Също така активирах опцията за мултиплейър в реално време на да в конзолата за разработчици.

ПОДРОБНОСТИ ЗА ГРЕШКАТА В ЛОГ

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

Опитах се да импортирам по-голям списък от абонати. В крайна сметка разбрах, че трябва да разделя CSV файла на множество CSV файла с максимум 200 записа (абонатни редове) във всеки, за да може Omnivore да спре да се оплаква.

CSV Splitter (безплатна програма за Windows) се справи с разделянето на моя голям CSV на по-малки части.

Преди да импортирам, проверих имейл адресите в списъка с абонати с помощта на Безплатен имейл верификатор (безплатен онлайн инструмент), като Omnivore може да търси несъществуващи имейл адреси.

Може също да не е доволен от базирани на роли имейл адреси като [email protected], но тогава ще получите известие с връзка за показване на проблемния имейл адрес(и).

  -  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