首页 > 解决方案 > 使用 Unity 在 Android 中初始化 Google Play 游戏客户端

问题描述

前段时间我有 Google Play Services 工作,但似乎从 unity 2018.1 升级到 2018.2 后它停止工作。(我不确定升级是否导致此问题)

在统一日志中,我可以看到:

Starting Auth with token client.
!!![Play Games Plugin DLL]07/17/18 15:49:08 +02:00 WARNING: Creating new PlayGamesPlatform
Building GPG services, implicitly attempts silent auth

而不是应用程序崩溃

在发布前报告中,我可以看到它在应用程序启动时崩溃(来自 logcat):

07-19 05:29:53.387: E/MonitoringInstr(20897): Exception encountered by: Thread[main,5,main]. Dumping thread state to outputs and pining for the fjords.
07-19 05:29:53.387: E/MonitoringInstr(20897): java.lang.IllegalStateException: A fatal developer error has occurred. Check the logs for further information.
07-19 05:29:53.387: E/MonitoringInstr(20897):   at com.google.android.gms.common.internal.zze.zzv(Unknown Source)
07-19 05:29:53.387: E/MonitoringInstr(20897):   at com.google.android.gms.common.internal.zzi.zzakg(Unknown Source)
07-19 05:29:53.387: E/MonitoringInstr(20897):   at com.google.android.gms.common.internal.zzh.handleMessage(Unknown Source)
07-19 05:29:53.387: E/MonitoringInstr(20897):   at android.os.Handler.dispatchMessage(Handler.java:102)
07-19 05:29:53.387: E/MonitoringInstr(20897):   at android.os.Looper.loop(Looper.java:158)
07-19 05:29:53.387: E/MonitoringInstr(20897):   at android.app.ActivityThread.main(ActivityThread.java:7230)
07-19 05:29:53.387: E/MonitoringInstr(20897):   at java.lang.reflect.Method.invoke(Native Method)
07-19 05:29:53.387: E/MonitoringInstr(20897):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
07-19 05:29:53.387: E/MonitoringInstr(20897):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

其次是:

07-19 05:29:53.397: E/THREAD_STATE(20897):   Thread[UnityMain,5,main]
07-19 05:29:53.397: E/THREAD_STATE(20897):     com.unity3d.player.UnityPlayer.nativeRender(Native Method)
07-19 05:29:53.397: E/THREAD_STATE(20897):     com.unity3d.player.UnityPlayer.c(Unknown Source)
07-19 05:29:53.397: E/THREAD_STATE(20897):     com.unity3d.player.UnityPlayer$e$2.queueIdle(Unknown Source)
07-19 05:29:53.397: E/THREAD_STATE(20897):     android.os.MessageQueue.next(MessageQueue.java:392)
07-19 05:29:53.397: E/THREAD_STATE(20897):     android.os.Looper.loop(Looper.java:143)
07-19 05:29:53.397: E/THREAD_STATE(20897):     com.unity3d.player.UnityPlayer$e.run(Unknown Source)
07-19 05:29:53.397: E/THREAD_STATE(20897):   Thread[InstrumentationConnectionThread,5,main]
07-19 05:29:53.397: E/THREAD_STATE(20897):     android.os.MessageQueue.nativePollOnce(Native Method)
07-19 05:29:53.397: E/THREAD_STATE(20897):     android.os.MessageQueue.next(MessageQueue.java:323)
07-19 05:29:53.397: E/THREAD_STATE(20897):     android.os.Looper.loop(Looper.java:143)
07-19 05:29:53.397: E/THREAD_STATE(20897):     android.os.HandlerThread.run(HandlerThread.java:61)
07-19 05:29:53.397: E/THREAD_STATE(20897):   Thread[ReferenceQueueDaemon,5,system]
07-19 05:29:53.397: E/THREAD_STATE(20897):     java.lang.Object.wait(Native Method)
07-19 05:29:53.397: E/THREAD_STATE(20897):     java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:162)
07-19 05:29:53.397: E/THREAD_STATE(20897):     java.lang.Thread.run(Thread.java:818)
07-19 05:29:53.397: E/THREAD_STATE(20897):   Thread[Thread-3086,4,main]
07-19 05:29:53.397: E/THREAD_STATE(20897):     libcore.io.Posix.android_getaddrinfo(Native Method)
07-19 05:29:53.397: E/THREAD_STATE(20897):     libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55)
07-19 05:29:53.397: E/THREAD_STATE(20897):     java.net.InetAddress.lookupHostByName(InetAddress.java:451)
07-19 05:29:53.397: E/THREAD_STATE(20897):     java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)
07-19 05:29:53.397: E/THREAD_STATE(20897):     java.net.InetAddress.getAllByName(InetAddress.java:215)
07-19 05:29:53.397: E/THREAD_STATE(20897):     com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29)
07-19 05:29:53.397: E/THREAD_STATE(20897):     com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:220)
07-19 05:29:53.397: E/THREAD_STATE(20897):     com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:176)
07-19 05:29:53.397: E/THREAD_STATE(20897):     com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:108)
07-19 05:29:53.397: E/THREAD_STATE(20897):     com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:482)
07-19 05:29:53.397: E/THREAD_STATE(20897):     com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:465)
07-19 05:29:53.397: E/THREAD_STATE(20897):     com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:447)
07-19 05:29:53.397: E/THREAD_STATE(20897):     com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:353)
07-19 05:29:53.397: E/THREAD_STATE(20897):     com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:476)
07-19 05:29:53.397: E/THREAD_STATE(20897):     com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:418)
07-19 05:29:53.397: E/THREAD_STATE(20897):     com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:540)
07-19 05:29:53.397: E/THREAD_STATE(20897):     com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:105)
07-19 05:29:53.397: E/THREAD_STATE(20897):     com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:25)
07-19 05:29:53.397: E/THREAD_STATE(20897):     com.unity3d.player.UnityWebRequest.runSafe(Unknown Source)
07-19 05:29:53.397: E/THREAD_STATE(20897):     com.unity3d.player.UnityWebRequest.run(Unknown Source)
07-19 05:29:53.397: E/THREAD_STATE(20897):   Thread[HeapTaskDaemon,5,system]
07-19 05:29:53.397: E/THREAD_STATE(20897):     dalvik.system.VMRuntime.runHeapTasks(Native Method)
07-19 05:29:53.397: E/THREAD_STATE(20897):     java.lang.Daemons$HeapTaskDaemon.run(Daemons.java:370)
07-19 05:29:53.397: E/THREAD_STATE(20897):     java.lang.Thread.run(Thread.java:818)
07-19 05:29:53.397: E/THREAD_STATE(20897):   Thread[FinalizerWatchdogDaemon,5,system]
07-19 05:29:53.397: E/THREAD_STATE(20897):     java.lang.Thread.sleep(Native Method)
07-19 05:29:53.397: E/THREAD_STATE(20897):     java.lang.Thread.sleep(Thread.java:1031)
07-19 05:29:53.397: E/THREAD_STATE(20897):     java.lang.Thread.sleep(Thread.java:985)
07-19 05:29:53.397: E/THREAD_STATE(20897):     java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor(Daemons.java:288)
07-19 05:29:53.397: E/THREAD_STATE(20897):     java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:299)
07-19 05:29:53.397: E/THREAD_STATE(20897):     java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:247)
07-19 05:29:53.397: E/THREAD_STATE(20897):     java.lang.Thread.run(Thread.java:818)
07-19 05:29:53.397: E/THREAD_STATE(20897):   Thread[main,5,main]
07-19 05:29:53.397: E/THREAD_STATE(20897):     dalvik.system.VMStack.getThreadStackTrace(Native Method)
07-19 05:29:53.397: E/THREAD_STATE(20897):     java.lang.Thread.getStackTrace(Thread.java:580)
07-19 05:29:53.397: E/THREAD_STATE(20897):     java.lang.Thread.getAllStackTraces(Thread.java:522)
07-19 05:29:53.397: E/THREAD_STATE(20897):     androidx.test.runner.MonitoringInstrumentation.getThreadState(MonitoringInstrumentation.java:194)
07-19 05:29:53.397: E/THREAD_STATE(20897):     androidx.test.runner.MonitoringInstrumentation.dumpThreadStateToOutputs(MonitoringInstrumentation.java:191)
07-19 05:29:53.397: E/THREAD_STATE(20897):     androidx.test.runner.MonitoringInstrumentation.onException(MonitoringInstrumentation.java:188)
07-19 05:29:53.397: E/THREAD_STATE(20897):     androidx.test.runner.AndroidJUnitRunner.onException(AndroidJUnitRunner.java:117)
07-19 05:29:53.397: E/THREAD_STATE(20897):     androidx.test.runner.MonitoringInstrumentation$3.uncaughtException(MonitoringInstrumentation.java:2)
07-19 05:29:53.397: E/THREAD_STATE(20897):   Thread[GAC_Executor[0],5,main]
07-19 05:29:53.397: E/THREAD_STATE(20897):     java.lang.Object.wait(Native Method)
07-19 05:29:53.397: E/THREAD_STATE(20897):     java.lang.Thread.parkFor$(Thread.java:1220)
07-19 05:29:53.397: E/THREAD_STATE(20897):     sun.misc.Unsafe.park(Unsafe.java:299)
07-19 05:29:53.397: E/THREAD_STATE(20897):     java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
07-19 05:29:53.397: E/THREAD_STATE(20897): 

同样从 Pre-launch 开始,它在 Pixel 2 手机上没有错误。(可能是因为它是唯一一个运行 android P 预览版的手机)

我试过了:

我没有任何其他想法可以尝试让它再次工作。因此,任何建议都值得赞赏。

标签: androidunity3dgoogle-play-services

解决方案


推荐阅读