From b0bb2f778f653eff0e2a8f0b512fcc4391894a74 Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Tue, 25 Jun 2019 15:36:46 +0200 Subject: [PATCH] Catch all exceptions in onFrameDraw ... as throwing an exception in there somehow will mess up the hwui task queue. Test: Have a crashy app, swipe up while the app is crashing Fixes: 134583193 Change-Id: Ie3ba5f991759f807b154f55f9fc816e7efe2fdfe --- core/java/android/view/ViewRootImpl.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 3adddc790c675..b0321f3a30d61 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -1107,7 +1107,13 @@ public final class ViewRootImpl implements ViewParent, */ public void registerRtFrameCallback(FrameDrawingCallback callback) { if (mAttachInfo.mThreadedRenderer != null) { - mAttachInfo.mThreadedRenderer.registerRtFrameCallback(callback); + mAttachInfo.mThreadedRenderer.registerRtFrameCallback(frame -> { + try { + callback.onFrameDraw(frame); + } catch (Exception e) { + Log.e(TAG, "Exception while executing onFrameDraw", e); + } + }); } }