统一设置Google Play服务时出错

时间:2016-10-08 16:31:32

标签: unity3d google-play-services

按照google play games plugin for unity上的说明,我无法正确设置。我的应用程序在登录时崩溃,具有以下日志输出(没有更多详细信息)。我找不到可能的原因没有运气,搜索似乎没有任何有用的提示。

实际错误显示为:

Application ID () must be a numeric value. Please verify that your manifest refers to the correct project ID

完整的日志输出:

10-08 19:43:49.581 25688-25734/? E/linker: readlink('/proc/self/fd/49') failed: Permission denied [fd=49]
10-08 19:43:49.581 25688-25734/? E/linker: warning: unable to get realpath for the library "/data/data/com.testcompany.testapp/app_.gpg.classloader/d75c8e1bbeab9e1ddffb9d332585db71.dex". Will use given name.
10-08 19:43:49.667 25688-25734/? W/PopupManager: You have not specified a View to use as content view for popups. Falling back to the Activity content view. Note that this may not work as expected in multi-screen environments
10-08 19:43:49.675 25688-26526/? I/GamesNativeSDK: Auth operation started: SIGN IN
10-08 19:43:49.675 25688-26526/? I/GamesNativeSDK: Connecting to Google Play...
10-08 19:43:49.802 10946-10956/? W/GamesServiceBroker: Client connected with SDK 9683000, Services 9683438, and Games 37240038
10-08 19:43:49.837 10946-26540/? E/ValidateServiceOp: Application ID () must be a numeric value. Please verify that your manifest refers to the correct project ID.
10-08 19:43:49.842 25688-25688/? D/AndroidRuntime: Shutting down VM
10-08 19:43:49.846 25688-25688/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                   Process: com.testcompany.testapp, PID: 25688
                                                   java.lang.Error: FATAL EXCEPTION [main]
                                                   Unity version     : 5.4.0f3
                                                   Device model      : LGE Nexus 5
                                                   Device fingerprint: google/hammerhead/hammerhead:6.0/MRA58K/2256973:user/release-keys

                                                   Caused by: java.lang.IllegalStateException: A fatal developer error has occurred. Check the logs for further information.
                                                       at com.google.android.gms.common.internal.zze$zza.zzc(Unknown Source)
                                                       at com.google.android.gms.common.internal.zze$zza.zzv(Unknown Source)
                                                       at com.google.android.gms.common.internal.zze$zze.zzauc(Unknown Source)
                                                       at com.google.android.gms.common.internal.zze$zzd.handleMessage(Unknown Source)
                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                       at android.os.Looper.loop(Looper.java:148)
                                                       at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

我已采取生成OAuth2客户端ID所需的步骤,并且我已成功将其应用于GooglePlayGame插件。可能是错误消息的原因是什么?

3 个答案:

答案 0 :(得分:2)

如果我们引用日志输出中显示的实际错误,则问题是由您的Manifest中声明的application ID引起的,这实际上是开发人员犯下的最大设置错误之一,如此{{1}所示3}}

要解决此类错误,请检查以下内容:

适用于Android:

  • 请验证@string/app_id资源的值是否与您应用的数字ID相匹配。此资源的值应仅包含数字。例如:

    <string name="app_id">123456789012</string>

    警告:请勿使用完整的客户端ID(1233456789012.apps.googleusercontent.com)作为您的应用ID。这将导致错误。

适用于iOS:

  • application_ID是Google Play开发者控制台为您的项目分配的数字。请注意,这与您的Apple application_ID不同。

然后,在检查application ID后,还请检查video。请注意:

  

如果您使用调试证书调试游戏但使用发行证书配置了游戏服务,则应使用相同的程序包名称和调试证书的SHA1指纹添加第二个链接的应用程序。这将允许您登录应用程序,无论它是使用调试证书还是发布证书签名。

有关其他提示,请参阅以下相关资源:

最后,这个Android troubleshooting guide也可能有助于提出此Q&A thread

答案 1 :(得分:1)

问题是由Google Play服务中的多个应用程序配置引起的。虽然游戏服务面板只显示了一个带有我的包名称的应用程序,但是之前针对谷歌云消息传递和其他服务的谷歌云服务中配置了相同应用程序的几个实例。只有当我关闭所有服务,删除应用程序并耐心地在Google Play服务中创建一个统一的应用程序配置时,问题才得以解决。

答案 2 :(得分:1)

我也遇到了这个问题。这是我的解决方案:

删除旧版GooglePlayService和Admob插件,然后导入新版本。

打开Android SDK Manager(在Unity,Window - &gt; Google Play游戏 - &gt;下载 - &gt; Google Play Gamse SDK(Android)),更新以下内容:     enter image description here

然后尝试设置Goole Play Service。

另外,GooglPlayServices和Admob的当前版本都导入PlayServicesResolver / Editor / Google.JarResolverLib.dll(JarResolverLib.dll),只需删除Google.JarResolerLib.dll。

希望这可以帮到你!