unity3d – Unity游戏开始在android 8上崩溃

Android Vitals获得以下堆栈跟踪:

java.lang.Error: FATAL EXCEPTION [main]
Unity version     : 5.6.2f1
Device model      : samsung SM-G955F
Device fingerprint: samsung/dream2ltexx/dream2lte:8.0.0/*****/***********B7:user/release-keys
Caused by
  at bitter.jnibridge.JNIBridge.invoke (Native Method)
  at bitter.jnibridge.JNIBridge$a.invoke (Unknown Source:20)
  at java.lang.reflect.Proxy.invoke (Proxy.java:913)
  at $Proxy1.onBindingDied (Unknown Source)
  at android.app.LoadedApk$ServiceDispatcher.doConnected (LoadedApk.java:1652)
  at android.app.LoadedApk$ServiceDispatcher$RunConnection.run (LoadedApk.java:1685)
  at android.os.Handler.handleCallback (Handler.java:789)
  at android.os.Handler.dispatchMessage (Handler.java:98)
  at android.os.Looper.loop (Looper.java:164)
  at android.app.ActivityThread.main (ActivityThread.java:6938)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:327)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)



来自Unity Enterprise支持:

We are aware of the issue. We fixed it in 2017.3 after upgrading the
JNIbridge to support Oreo APIs. Previous reports describe that when a
Unity application that has INTERNET permission is running, and the
Google play services is updated, stopped or reboot, it will cause the
app to crash in Android 8, 8.1 devices.

The problem is that ServiceConnection.onBindingDied which was added in
API level 26 is not implemented before 2017.3; we added this for
GoogleAdsServiceConnection in such version an also updated the
JNIbridge to solve the problem.

I’m able to reproduce it in an empty project by setting Internet
Access to “Require” and when running on the device, go to settings
->Apps & notifications->google play services->storage->MANAGE SPACE->CLEAR ALL DATA, then the app crashes as described in Stack

Do you have plans to upgrade your project to 2017.4 LTS?

I’m asking because we think that a backport of the fix is not
feasible, not only because it would be for a version for which we no
longer create patches (5.6.x) but an appropriate fix would involve
backporting the full support for Oreo APIs which might be tricky and
may cause regressions.