在Android中初始化游戏客户端

我正在尝试新的Google Play游戏服务。

起初,我遵循这个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$fa(Unknown Source) 05-16 20:01:39.034: E/AndroidRuntime(18257): at com.google.android.gms.internal.p$fa(Unknown Source) 05-16 20:01:39.034: E/AndroidRuntime(18257): at com.google.android.gms.internal.p$bp(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 =日志,没有什么更多。 那么我在哪里可以find这些“日志”?

我的实现仅在一件事上有所不同。 我有一个ClassA扩展BaseGameActivity,然后ClassB扩展ClassA和实现View.OnClickListener所以我有类中的所有方法https://developers.google.com/games/services/android/init classB

感谢您的帮助

我最初有同样的问题。 我所要做的就是查看完整的未经过滤的LogCat日志。 在那里,我看到了这样的信息:

GamesIntentService(17929):使用Google Play游戏服务需要在清单的应用程序标记中使用名称为“com.google.android.gms.games.APP_ID”的元数据标记

因此,假设您在strings.xml创build了一个名为app_id的条目,请尝试将以下代码添加到<application>标记下的AndroidManifest.xml

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

您可以在游戏服务选项卡中find您的APP_ID

**游戏服务**选项卡

为了补充Hetabiquo响应,如果您还在游戏中使用Cloud Save服务,则还必须通过在<application>标记范围内添加以下元数据标记来更新应用程序的AndroidManifest.xml

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

刚才有同样的问题,但元标记正确 – 我查了未经过滤的logcat,发现它正在寻找一个不同的元标记。

元标签的名称因您在GameHelper构造函数中提交的客户编号的种类而异(如果使用的话)。

 new GameHelper(this, GameHelper.CLIENT_GAMES); 

对我来说,我意外地使用了CLIENT_ALL,导致meta标签名称的错误期望。 我将其更改为CLIENT_GAMES,一切正常。

除了Hetabiquo之外 ,您还可以在游戏服务选项卡中find您的APP_ID:

**游戏服务**选项卡