2013-05-16 55 views
65

我在嘗試新的Google Play遊戲服務。在Android中初始化遊戲客戶端

起初我跟着這個HOWTO https://developers.google.com/games/services/android/quickstart 然後完成這個https://developers.google.com/games/services/android/init

我最終是這樣的:

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) 

我試圖按照一步教程一步。我不明白髮生了什麼問題。

ava.lang.IllegalStateException:發生致命開發人員錯誤。檢查日誌以獲取更多信息。

我以爲logcat =日誌,沒有什麼更多。那麼我在哪裏可以找到這些「日誌」?

我的實現只有一點不同。我有延伸BaseGameActivity然後ClassB的延伸ClassA和實現View.OnClickListener 所以我從https://developers.google.com/games/services/android/init所有方法類ClassB的

感謝所有幫助

回答

123

我最初有同樣的問題ClassA的。我所要做的就是查看完整的,未經過濾的LogCat日誌。在那裏,我看到的消息:

GamesIntentService(17929):使用谷歌Play遊戲服務,需要在您的清單中的應用標籤名稱「com.google.android.gms.games.APP_ID」元數據標籤

因此,假設你創建你strings.xml稱爲app_id的條目,嘗試添加<application>標籤下的以下到您的AndroidManifest.xml

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

你可以找到您在運動會服務APP_ID標籤

**Games Services** tab

+8

捂臉 - 我是有在'AndroidManifest.xml'卻沒有關於我''標籤。謝謝 – Semanticer

+5

另外,請不要用開發人員控制檯中的APP ID替換「.APP_ID」。我用了15分鐘左右的時間:| – RelativeGames

+32

另外,不要將您的應用程序ID直接添加到元數據標記中。當系統預期它是一個字符串時,它被解析爲整數:| – Finnboy11

18

補充Hetabiquo響應,如果您還使用在你的遊戲雲端儲存服務您還必須通過添加更新應用程序的AndroidManifest.xml以下里面<application>標籤範圍的元數據標籤

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

感謝兄弟!這就是它 – cesarferreira

+0

helloe @Diego Palomar在我的應用程序中,我已經定義了app_id,但它只能調用數字,但在我的情況下使用console.google.developer創建應用程序ID,如123-30abcd.apps.googleusercontent.com,所以如何可以使用我的應用程序ID我面臨illegalstateException由於它,請給我解決方案 –

+0

@ NiravMehta:使用數字在你在Google Developers Console中看到的那個長字符串(客戶端ID)中的破折號。 –

2

剛剛有同樣的問題,但有元標記正確 - 我沒有廁所將未經過濾的logcat找到並發現它正在搜索不同的元標記。

元標籤的名稱因您在GameHelper構造函數中提交的客戶編號的種類而異(如果使用的話)。

new GameHelper(this, GameHelper.CLIENT_GAMES); 

對我來說,我意外地使用了CLIENT_ALL,這導致了meta標籤名稱的錯誤期望。我將其更改爲CLIENT_GAMES,一切正常。

1

除了Hetabiquo,您可以鰭在APP_ID的運動會服務標籤:

**Games Services** tab