From 3c9fc2fd2cdbfefdd48ea5bf6507257bc9ef52ba Mon Sep 17 00:00:00 2001 From: bastionkid Date: Tue, 11 Apr 2023 18:14:29 +0530 Subject: [PATCH 1/3] null safety check added around FlutterView avoid crash --- .../android/FlutterActivityAndFragmentDelegate.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/shell/platform/android/io/flutter/embedding/android/FlutterActivityAndFragmentDelegate.java b/shell/platform/android/io/flutter/embedding/android/FlutterActivityAndFragmentDelegate.java index 0dbb4573e9373..cd5383cd3e270 100644 --- a/shell/platform/android/io/flutter/embedding/android/FlutterActivityAndFragmentDelegate.java +++ b/shell/platform/android/io/flutter/embedding/android/FlutterActivityAndFragmentDelegate.java @@ -678,8 +678,11 @@ void onDestroyView() { flutterView.getViewTreeObserver().removeOnPreDrawListener(activePreDrawListener); activePreDrawListener = null; } - flutterView.detachFromFlutterEngine(); - flutterView.removeOnFirstFrameRenderedListener(flutterUiDisplayListener); + + if (flutterView != null) { + flutterView.detachFromFlutterEngine(); + flutterView.removeOnFirstFrameRenderedListener(flutterUiDisplayListener); + } } void onSaveInstanceState(@Nullable Bundle bundle) { From 9908706c1d13945971cffff7b1bb3b74fdeda23e Mon Sep 17 00:00:00 2001 From: Akash Khunt Date: Fri, 14 Apr 2023 23:17:51 +0530 Subject: [PATCH 2/3] Update shell/platform/android/io/flutter/embedding/android/FlutterActivityAndFragmentDelegate.java Co-authored-by: Reid Baker --- .../embedding/android/FlutterActivityAndFragmentDelegate.java | 1 + 1 file changed, 1 insertion(+) diff --git a/shell/platform/android/io/flutter/embedding/android/FlutterActivityAndFragmentDelegate.java b/shell/platform/android/io/flutter/embedding/android/FlutterActivityAndFragmentDelegate.java index cd5383cd3e270..e3ddccfa5f105 100644 --- a/shell/platform/android/io/flutter/embedding/android/FlutterActivityAndFragmentDelegate.java +++ b/shell/platform/android/io/flutter/embedding/android/FlutterActivityAndFragmentDelegate.java @@ -679,6 +679,7 @@ void onDestroyView() { activePreDrawListener = null; } + // flutterView can be null in instances where a delegate.onDestroyView is called without onCreateView being called. See https://github.com/flutter/engine/pull/41082 for more detail. if (flutterView != null) { flutterView.detachFromFlutterEngine(); flutterView.removeOnFirstFrameRenderedListener(flutterUiDisplayListener); From f4cb00e77d898f4cdb36a34b899c042502263899 Mon Sep 17 00:00:00 2001 From: Reid Baker Date: Mon, 17 Apr 2023 10:38:52 -0400 Subject: [PATCH 3/3] Update FlutterActivityAndFragmentDelegate.java Break comment into 2 lines. --- .../embedding/android/FlutterActivityAndFragmentDelegate.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/shell/platform/android/io/flutter/embedding/android/FlutterActivityAndFragmentDelegate.java b/shell/platform/android/io/flutter/embedding/android/FlutterActivityAndFragmentDelegate.java index e3ddccfa5f105..9a9f4d9a6a19c 100644 --- a/shell/platform/android/io/flutter/embedding/android/FlutterActivityAndFragmentDelegate.java +++ b/shell/platform/android/io/flutter/embedding/android/FlutterActivityAndFragmentDelegate.java @@ -679,7 +679,8 @@ void onDestroyView() { activePreDrawListener = null; } - // flutterView can be null in instances where a delegate.onDestroyView is called without onCreateView being called. See https://github.com/flutter/engine/pull/41082 for more detail. + // flutterView can be null in instances where a delegate.onDestroyView is called without + // onCreateView being called. See https://github.com/flutter/engine/pull/41082 for more detail. if (flutterView != null) { flutterView.detachFromFlutterEngine(); flutterView.removeOnFirstFrameRenderedListener(flutterUiDisplayListener);