2013-05-16 59 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