69

我正在尝试新的 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$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 的 ClassA,然后是扩展 ClassA 并实现 View.OnClickListener 的 ClassB 所以我在 ClassB 中拥有来自https://developers.google.com/games/services/android/init的所有方法

谢谢你的帮助

4

5 回答 5

127

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

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

因此,假设您在strings.xml被调用中创建了一个条目,请app_id尝试将以下内容添加到您AndroidManifest.xml<application>标签下:

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

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

**游戏服务**标签

于 2013-05-17T00:10:05.720 回答
18

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

<meta-data android:name="com.google.android.gms.appstate.APP_ID" android:value="@string/app_id" />
于 2013-07-22T12:38:59.220 回答
2

只是遇到了同样的问题,但元标记正确 - 我确实查找了未过滤的 logcat 并发现它正在搜索不同的元标记。

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

new GameHelper(this, GameHelper.CLIENT_GAMES);

对我来说,我不小心使用了 CLIENT_ALL,这导致了对元标记名称的错误期望。我将其更改为 CLIENT_GAMES,一切顺利。

于 2014-11-24T18:42:17.537 回答
1

除了Hetabiquo 之外,您还可以在Games Services选项卡中找到您的 APP_ID:

**游戏服务**标签

于 2016-01-26T22:32:28.323 回答
0

我被这个错误困扰了很长一段时间。我决定通过 basegameutils 包一次扫描每个文件。在 gameHelperUtils 类中,我找到了这个方法,getAppIdFromResource()。在其中它从资源请求应用程序 ID。我记得我在清单文件中硬编码了应用程序 ID。然后我在字符串文件中添加了 app_id 的字符串资源。令我惊讶的是,错误消失了,排行榜出现了!

于 2019-04-04T22:40:31.783 回答