2013-05-16 7 views
65

Próbuję nowych usług gier Google Play.Inicjowanie gier Klient w systemie Android

Początkowo następuje to HOWTO https://developers.google.com/games/services/android/quickstart a następnie zakończył ten https://developers.google.com/games/services/android/init

skończę tak:

05-16 20:01:39.034: E/AndroidRuntime(18257): FATAL EXCEPTION: main 
05-16 20:01:39.034: E/AndroidRuntime(18257): java.lang.IllegalStateException: A fatal developer error has occurred. Check the logs for further information. 
05-16 20:01:39.034: E/AndroidRuntime(18257): at com.google.android.gms.internal.p$f.a(Unknown Source) 
05-16 20:01:39.034: E/AndroidRuntime(18257): at com.google.android.gms.internal.p$f.a(Unknown Source) 
05-16 20:01:39.034: E/AndroidRuntime(18257): at com.google.android.gms.internal.p$b.p(Unknown Source) 
05-16 20:01:39.034: E/AndroidRuntime(18257): at com.google.android.gms.internal.p$a.handleMessage(Unknown Source) 
05-16 20:01:39.034: E/AndroidRuntime(18257): at android.os.Handler.dispatchMessage(Handler.java:99) 
05-16 20:01:39.034: E/AndroidRuntime(18257): at android.os.Looper.loop(Looper.java:137) 
05-16 20:01:39.034: E/AndroidRuntime(18257): at android.app.ActivityThread.main(ActivityThread.java:5041) 
05-16 20:01:39.034: E/AndroidRuntime(18257): at java.lang.reflect.Method.invokeNative(Native Method) 
05-16 20:01:39.034: E/AndroidRuntime(18257): at java.lang.reflect.Method.invoke(Method.java:511) 
05-16 20:01:39.034: E/AndroidRuntime(18257): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
05-16 20:01:39.034: E/AndroidRuntime(18257): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
05-16 20:01:39.034: E/AndroidRuntime(18257): at dalvik.system.NativeStart.main(Native Method) 

Starałem się śledzić krok po kroku samouczek. Nie rozumiem, co się dzieje.

ava.lang.IllegalStateException: Wystąpił śmiertelny błąd programisty. Sprawdź dzienniki, aby uzyskać dalsze informacje.

Myślałem, że logcat = logi i nic więcej. Gdzie mogę znaleźć te "logi"?

Moja implementacja różni się tylko jedną rzeczą. Mam ClassA która rozciąga BaseGameActivity a następnie ClassB która rozciąga ClassA i implementuje View.OnClickListener Mam więc wszystkie metody z https://developers.google.com/games/services/android/init w klasie ClassB

dzięki za pomoc

Odpowiedz

123

miałem ten sam problem na początku. Musiałem tylko spojrzeć na pełny, niefiltrowany dziennik LogCat. Tam zobaczyłem wiadomość:

GamesIntentService (17929): Korzystanie z usługi Google Play gry wymaga tag metadanych o nazwie „com.google.android.gms.games.APP_ID” w tagu aplikacji swojego manifestu

Więc zakładając, że utworzony wpis w twojej strings.xml zwanego app_id, spróbuj dodać następujące wpisy do AndroidManifest.xml pod <application> tagu:

<meta-data android:name="com.google.android.gms.games.APP_ID" 
     android:value="@string/app_id" /> 

można znaleźć Twój APP_ID w Games Services zakładka

**Games Services** tab

+8

facepalm - miałem go w 'AndroidManifest.xml' ale nie na mój' ' etykietka. dzięki – Semanticer

+5

Drobne uzupełnienie, nie zastępuj ".APP_ID" swoim identyfikatorem aplikacji z poziomu konsoli programisty. Straciłem z tym około 15 minut: | – RelativeGames

+32

Kolejny dodatek, nie umieszczaj swojego identyfikatora aplikacji bezpośrednio w tagu meta-danych. Jest rozpatrywany jako liczba całkowita, gdy system oczekuje, że będzie ciągiem znaków: | – Finnboy11

18

Dopełnieniem Hetabiquo odpowiedź, jeśli również użyć Chmura Zapisz usługę w swojej grze należy również zaktualizować AndroidManifest.xml swojej aplikacji poprzez dodanie następujących tag meta-danych wewnątrz zakresu <application> tag

<meta-data android:name="com.google.android.gms.appstate.APP_ID" android:value="@string/app_id" /> 
+0

Dzięki bro! To było to – cesarferreira

+0

helloe @Diego Palomar w mojej aplikacji jestem już zdefiniowany app_id ale wywołał tylko numeric dozwolone, ale w moim przypadku identyfikator aplikacji tworzenie za pomocą console.google.developer, jak 123-30abcd.apps.googleusercontent.com, więc jak mogę użyć mojego identyfikatora aplikacji i mam do czynienia z nielegstateException z tego powodu, proszę podać mi rozwiązanie –

+0

@NiravMehta: Użyj numeru przed myślnikiem w tym długim ciągu (identyfikator klienta), który widzisz w Google Developers Console. –

2

prostu miał ten sam problem, ale miał meta-tag poprawny - zrobiłem toalecie k up niefiltrowane logcat i okazało się, że szukał innego meta-tag.

Nazwa meta-tagu różni się w zależności od rodzaju numeru klienta przesłanego w Konstruktorze GameHelper (jeśli go używasz).

new GameHelper(this, GameHelper.CLIENT_GAMES); 

Dla mnie przypadkowo wykorzystane CLIENT_ALL co prowadzi do błędnych oczekiwań nazwie meta-tag. Zmieniłem go na CLIENT_GAMES i wszystko działało sprawnie.

1

Oprócz Hetabiquo można fin swoją APP_ID w te Gry Usługi zakładka:

**Games Services** tab