连接到Google Play游戏时应用崩溃 - 发生了致命的开发人员错误

时间:2017-06-29 07:44:53

标签: android google-play-games

当我尝试将其与Google Play游戏连接时,我的游戏停止了。它工作正常。但突然间发生了这种情况。它显示发生了开发错误。这是logcat。

07:34.150 2144-2144/com.sennovations.countermaster E/AndroidRuntime: FATAL EXCEPTION: main
                                                                          Process: com.sennovations.countermaster, PID: 2144
                                                                          java.lang.IllegalStateException: A fatal developer error has occurred. Check the logs for further information.
                                                                              at com.google.android.gms.common.internal.zze.zzs(Unknown Source)
                                                                              at com.google.android.gms.common.internal.zzi.zzrk(Unknown Source)
                                                                              at com.google.android.gms.common.internal.zzh.handleMessage(Unknown Source)
                                                                              at android.os.Handler.dispatchMessage(Handler.java:111)
                                                                              at android.os.Looper.loop(Looper.java:194)
                                                                              at android.app.ActivityThread.main(ActivityThread.java:5637)
                                                                              at java.lang.reflect.Method.invoke(Native Method)
                                                                              at java.lang.reflect.Method.invoke(Method.java:372)
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)

我在清单中添加了元标记。

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

任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:0)

根据您的评论,我推断这不是您的问题,但是当我遇到类似的错误时,我解决了以下问题,我将添加以下答案:

Google的文档(here, for instance)目前指示我们添加

compile 'com.google.android.gms:play-services:11.0.4'

build.gradle。请注意,它目前建议使用版本11.0.4。谷歌补充说:

  

每次更新Google Play服务时,请务必更新此版本号。

这一行似乎很可能是一些有史以来最糟糕的建议。

为什么呢?有两个原因。

  1. 假设您使用免费BaseGameUtils Google本身鼓励。其build.gradle设置为使用版本8.4.0:

      ext.gms_library_version = '8.4.0'
    

    我这样做了,并使用网页的建议来使用版本11.0.4。图书馆编号的分歧导致应用程序在Android Studio模拟器上崩溃,测试设备的堆栈跟踪类似于上面的那个。

    公平地说,Android Studio会警告你不同的版本号可能会出错:如果你打开清单文件,它会强调版本号并发出两声不同的呜呜声版本号,它甚至会告诉你哪些版本号不同意,但是 - 这是关键 - 它不会告诉你在哪里可以找到具有不同版本号的其他文件。如果要导入多个库,和/或在GitHub或其他地方编译依赖项,找到原因可能会有点挑战。

  2. 如果您的应用请求Play游戏服务11.0.4,但您的模拟器和/或手机版本号较低(例如,我的模拟器上的版本为11.0.2),那么游戏API&#39; { {1}}会将状态connect()提供给RESULT_CANCEL。关于这些结果代码的文档leaves something to be desired,所以这可能需要一段时间来调试 - 事实上,我认为我认为上面的崩溃是我唯一的问题,即问题可能与API版本号有关。

    有一种方法可以检查设备是否支持所请求的API,但Google的大部分文档都没有告诉您这样做,甚至onActivityResult()似乎也没有检查一下。 (You want to look at GoogleApiAvailability.GOOGLE_PLAY_SERVICES_VERSION_CODE.

    在我的特定情况下,通过将我的应用程序的播放服务版本更改为8.4.0来解决问题。现在工作得非常好。