My app is a game that consumes a native.so file and has a JNI layer. Whenever the OS kills my app (for example during an in-app update), I see this warning in logcat. What does it mean and how can I address it?
WindowManager system_server W Exception thrown during dispatchAppVisibility Window{b193956 u0 com.myapp.test/com.myapp.test.LaunchActivity EXITING}
android.os.DeadObjectException
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(BinderProxy.java:592)
at android.view.IWindow$Stub$Proxy.dispatchAppVisibility(IWindow.java:557)
at com.android.server.wm.WindowState.sendAppVisibilityToClients(WindowState.java:3298)
at com.android.server.wm.WindowContainer.sendAppVisibilityToClients(WindowContainer.java:1343)
at com.android.server.wm.WindowToken.setClientVisible(WindowToken.java:437)
at com.android.server.wm.ActivityRecord.setClientVisible(ActivityRecord.java:7147)
at com.android.server.wm.ActivityRecord.postApplyAnimation(ActivityRecord.java:5841)
at com.android.server.wm.ActivityRecord.commitVisibility(ActivityRecord.java:5784)
at com.android.server.wm.Transition.finishTransition(Transition.java:1373)
at com.android.server.wm.TransitionController.finishTransition(TransitionController.java:986)
at com.android.server.wm.WindowOrganizerController.finishTransition(WindowOrganizerController.java:526)
at android.window.IWindowOrganizerController$Stub.onTransact(IWindowOrganizerController.java:293)
at com.android.server.wm.WindowOrganizerController.onTransact(WindowOrganizerController.java:215)
at android.os.Binder.execTransactInternal(Binder.java:1406)
at android.os.Binder.execTransact(Binder.java:1350)
It means the Android framework is trying to send an IPC (for dispatchAppVisibility
) to your app, but failed because your app died, it failed to send it.
transactNative(NativeMethod)
refers to native code in the Android Binder implementation, running on the Android system_server
side and is not related to your native code. This error doesn't interfere with getting the app back up and running after the update, and can be safely ignored.