我们收到来自 Crashlytics 的错误报告,影响了相当大一部分用户(大约 10%)。这是一个 CalledFromWrongThreadException。
问题是我不知道是什么导致了这个问题,我自己也没有。这是日志:
Caused by android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:7282)
at android.view.ViewRootImpl.invalidateChildInParent(ViewRootImpl.java:1197)
at android.view.ViewGroup.invalidateChild(ViewGroup.java:5748)
at android.view.View.invalidateInternal(View.java:15082)
at android.view.View.invalidate(View.java:15046)
at android.view.View.invalidate(View.java:15029)
at android.view.SurfaceView$1.handleMessage(SurfaceView.java:142)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at com.unity3d.player.UnityPlayer$c.run(Unknown Source:20)
在com.unity3d.player.UnityPlayer$c.run(Unknown Source:20)
这里并不是很有帮助,因为来源未知,我猜它可能来自第三方库(GVR SDK,Fabric ...)。
有没有人有同样的问题?
作为参考,我们使用的是 Unity 版本:5.6.0f3,并且仅针对 Pixel 和 Pixel XL 手机报告了该错误。