As our product matures my team and I are starting to work toward stabilizing it. It had some issues that we cleared out. But there are some issues that are hard to track. We are using Unity with Oculus Integrations. The application is relatively stable but still has some issues.
One thing is that the apps sometimes: - crash and close - freeze - present black screen but continue to work - crash on startup
These seem to happen more often in smaller rooms with less distinguishable features or on places with a lot of people traffic. The app would sometimes crash on startup or resume. Or freeze in the middle of an experience.
We have tried to collect crash logs but most of the time the crash logs will indicate that the app tried to "resume" and the ActivitiManager is killing it due timeout.
Sometimes the app will go on background and present "tracking lost" overlay and then crash when going back.
Here is some accompanying adb traces that we have managed to capture.
2019/11/26 13:03:17.718 1545 1545 Info VrPowerManagerService: transition from HEADSET_MOUNTED to HEADSET_UNMOUNTED 2019/11/26 13:03:17.719 2468 2582 Info VrApi: ovr_HandleHmdEvents: HMT was UNmounted 2019/11/26 13:03:17.720 1545 1545 Error JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 100) 2019/11/26 13:03:17.721 1545 1545 Error VrPowerManagerService: error broadcasting state 2019/11/26 13:03:17.721 1545 1545 Error VrPowerManagerService: android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died 2019/11/26 13:03:17.721 1545 1545 Error VrPowerManagerService: at android.os.BinderProxy.transactNative(Native Method) 2019/11/26 13:03:17.721 1545 1545 Error VrPowerManagerService: at android.os.BinderProxy.transact(Binder.java:617) 2019/11/26 13:03:17.721 1545 1545 Error VrPowerManagerService: at oculus.internal.power.IVrPowerManagerClient$Stub$Proxy.onStateChange(IVrPowerManagerClient.java:77) 2019/11/26 13:03:17.721 1545 1545 Error VrPowerManagerService: at com.oculus.vrpowermanager.VrPowerManagerService$IVrPowerManagerClientProxy.notifyState(VrPowerManagerService.java:606) 2019/11/26 13:03:17.721 1545 1545 Error VrPowerManagerService: at com.oculus.vrpowermanager.VrPowerManagerService$ServiceInterface.notifyStateChange(VrPowerManagerService.java:710) 2019/11/26 13:03:17.721 1545 1545 Error VrPowerManagerService: at com.oculus.vrpowermanager.VrPowerManagerService.transitionToState(VrPowerManagerService.java:307) 2019/11/26 13:03:17.721 1545 1545 Error VrPowerManagerService: at com.oculus.vrpowermanager.VrPowerManagerService.-wrap7(VrPowerManagerService.java) 2019/11/26 13:03:17.721 1545 1545 Error VrPowerManagerService: at com.oculus.vrpowermanager.VrPowerManagerService$3.handleMessage(VrPowerManagerService.java:207) 2019/11/26 13:03:17.721 1545 1545 Error VrPowerManagerService: at android.os.Handler.dispatchMessage(Handler.java:102) 2019/11/26 13:03:17.721 1545 1545 Error VrPowerManagerService: at android.os.Looper.loop(Looper.java:154) 2019/11/26 13:03:17.721 1545 1545 Error VrPowerManagerService: at android.app.ActivityThread.main(ActivityThread.java:6144) 2019/11/26 13:03:17.721 1545 1545 Error VrPowerManagerService: at java.lang.reflect.Method.invoke(Native Method) 2019/11/26 13:03:17.721 1545 1545 Error VrPowerManagerService: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 2019/11/26 13:03:17.721 1545 1545 Error VrPowerManagerService: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 2019/11/26 13:03:17.721 1778 1778 Debug VRLifecycleSessionManager: onHeadsetUnmounted() 2019/11/26 13:03:17.721 2185 2185 Debug VrRuntimeService: Received broadcast: com.oculus.intent.action.MOUNT_STATE_CHANGED
*** And in our app
Then again there are some issues with the app as well. But as mentioned it is very hard to reproduce in the office conditions. It usually happen when we are in new places. Often with the application built with il2cpp, arm64, release. The crash logs lack stacktraces. The application is not distributed through the store. The issues seem to happen more often when switching on and off the headset in presence of network noise and moving people. But also sometimes there are issues when the app is long running, like 45min straight.
Are there any suggestions or guidelines how to deal with issues like these?
11-28 12:57:08.417 14669 14689 W System.err: android.content.pm.PackageManager$NameNotFoundException: com.oculus.scimitar 11-28 12:57:08.417 14669 14689 W System.err: at android.app.ApplicationPackageManager.getPackageInfoAsUser(ApplicationPackageManager.java:147) 11-28 12:57:08.417 14669 14689 W System.err: at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:132) 11-28 12:57:08.417 14669 14689 W System.err: at com.unity3d.player.UnityPlayer.nativeRender(Native Method) 11-28 12:57:08.417 14669 14689 W System.err: at com.unity3d.player.UnityPlayer.c(Unknown Source) 11-28 12:57:08.417 14669 14689 W System.err: at com.unity3d.player.UnityPlayer$e$1.handleMessage(Unknown Source) 11-28 12:57:08.417 14669 14689 W System.err: at android.os.Handler.dispatchMessage(Handler.java:98) 11-28 12:57:08.417 14669 14689 W System.err: at android.os.Looper.loop(Looper.java:154) 11-28 12:57:08.417 14669 14689 W System.err: at com.unity3d.player.UnityPlayer$e.run(Unknown Source)
We're also getting crashes related to tracking, pointing at CamSlamCfsMgr, Binder, and /system/bin/trackingservice. This usually happens to the same developer, in the same space, which is almost always darkly lit. I understand the tracking may be worse in a dark room, but it shouldn't crash.