一、问题描述

(1)问题描述:加载Flutter的页面,当页面关闭时候,App崩溃。

(2)影响版本大概:Flutter Sdk (V1.17.5 - V1.20.1)。

(3)问题原因:disconnectSurfaceFromRenderer在页面关闭释放时候被调用两次,第二次调用时候renderSurface已经为空,造成空指针。

// FlutterRenderer must be non-null.
private void disconnectSurfaceFromRenderer() {
if (flutterRenderer == null) {
throw new IllegalStateException(
"disconnectSurfaceFromRenderer() should only be called when flutterRenderer is non-null.");
}

flutterRenderer.stopRenderingToSurface();
renderSurface.release();
renderSurface = null;

}

(4)  github Issues链接

二、崩溃日志

Process: com.xiaoban.mobile, PID: 8897
java.lang.RuntimeException: Unable to destroy activity {com.xiaoban.mobile/com.xiaoban.mobile.v4.ui.ActivityFlutter}: java.lang.NullPointerExcept