diff --git a/shell/platform/android/io/flutter/embedding/android/FlutterActivityAndFragmentDelegate.java b/shell/platform/android/io/flutter/embedding/android/FlutterActivityAndFragmentDelegate.java index 0dbb4573e9373..9a9f4d9a6a19c 100644 --- a/shell/platform/android/io/flutter/embedding/android/FlutterActivityAndFragmentDelegate.java +++ b/shell/platform/android/io/flutter/embedding/android/FlutterActivityAndFragmentDelegate.java @@ -678,8 +678,13 @@ void onDestroyView() { flutterView.getViewTreeObserver().removeOnPreDrawListener(activePreDrawListener); activePreDrawListener = null; } - flutterView.detachFromFlutterEngine(); - flutterView.removeOnFirstFrameRenderedListener(flutterUiDisplayListener); + + // 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); + } } void onSaveInstanceState(@Nullable Bundle bundle) {