異常進程#線程
1.raster(31798)
31798 1.raster
SIGABRT
解析原始
1
00 pc 0000000000089fcc /apex/com.android.runtime/lib64/bionic/libc.so (abort+164) [arm64-v8a::a85ef5fb74e0282813cd1edb10854577]
01 pc 00000000004b72d0 KillProcess (../../../flutter/fml/logging.cc:221) [arm64-v8a]
02 pc 00000000004b7258 ~LogMessage (../../../flutter/fml/logging.cc:208) [arm64-v8a]
03 pc 000000000049cbc0 ImageGetHardwareBuffer (../../../flutter/shell/platform/android/platform_view_android_jni_impl.cc:0) [arm64-v8a]
04 pc 0000000000494f70 HardwareBufferFor (../../../flutter/shell/platform/android/image_external_texture.cc:121) [arm64-v8a]
05 pc 0000000000495ab0 ProcessFrame (../../../flutter/shell/platform/android/image_external_texture_vk_impeller.cc:45) [arm64-v8a]
06 pc 0000000000494dc8 Paint (../../../flutter/shell/platform/android/image_external_texture.cc:0) [arm64-v8a]
07 pc 00000000007276a0 Paint (../../../flutter/flow/layers/texture_layer.cc:66) [arm64-v8a]
08 pc 00000000007231cc PaintChildren (../../../flutter/flow/layers/container_layer.cc:0) [arm64-v8a]
09 pc 00000000007277e4 Paint (../../../flutter/flow/layers/transform_layer.cc:0) [arm64-v8a]
10 pc 00000000007231cc PaintChildren (../../../flutter/flow/layers/container_layer.cc:0) [arm64-v8a]
11 pc 00000000007277e4 Paint (../../../flutter/flow/layers/transform_layer.cc:0) [arm64-v8a]
12 pc 00000000007231cc PaintChildren (../../../flutter/flow/layers/container_layer.cc:0) [arm64-v8a]
13 pc 0000000000726aa8 Paint (../../../flutter/third_party/libcxx/include/__memory/shared_ptr.h:0) [arm64-v8a]
14 pc 00000000007231cc PaintChildren (../../../flutter/flow/layers/container_layer.cc:0) [arm64-v8a]
15 pc 00000000007277e4 Paint (../../../flutter/flow/layers/transform_layer.cc:0) [arm64-v8a]
16 pc 00000000007231cc PaintChildren (../../../flutter/flow/layers/container_layer.cc:0) [arm64-v8a]
17 pc 00000000007277e4 Paint (../../../flutter/flow/layers/transform_layer.cc:0) [arm64-v8a]
18 pc 00000000007231cc PaintChildren (../../../flutter/flow/layers/container_layer.cc:0) [arm64-v8a]
19 pc 00000000007277e4 Paint (../../../flutter/flow/layers/transform_layer.cc:0) [arm64-v8a]
20 pc 00000000007231cc PaintChildren (../../../flutter/flow/layers/container_layer.cc:0) [arm64-v8a]
21 pc 00000000007277e4 Paint (../../../flutter/flow/layers/transform_layer.cc:0) [arm64-v8a]
22 pc 00000000007231cc PaintChildren (../../../flutter/flow/layers/container_layer.cc:0) [arm64-v8a]
23 pc 00000000007277e4 Paint (../../../flutter/flow/layers/transform_layer.cc:0) [arm64-v8a]
24 pc 00000000007231cc PaintChildren (../../../flutter/flow/layers/container_layer.cc:0) [arm64-v8a]
25 pc 00000000007277e4 Paint (../../../flutter/flow/layers/transform_layer.cc:0) [arm64-v8a]
26 pc 00000000007231cc PaintChildren (../../../flutter/flow/layers/container_layer.cc:0) [arm64-v8a]
27 pc 00000000007277e4 Paint (../../../flutter/flow/layers/transform_layer.cc:0) [arm64-v8a]
崩潰分析
根本原因:Impeller 渲染器與阿里云播放器的 HardwareBuffer 不兼容
堆棧關(guān)鍵幀:
05 ProcessFrame (image_external_texture_vk_impeller.cc:45) ← Impeller Vulkan 后端
04 HardwareBufferFor (image_external_texture.cc:121) ← 嘗試獲取 HardwareBuffer
03 ImageGetHardwareBuffer (platform_view_android_jni_impl.cc) ← 調(diào)用失敗 → SIGABRT
07 Paint (texture_layer.cc:66) ← 視頻紋理層渲染
原因:Flutter 3.22+ 開始在 Android 上默認啟用 Impeller 渲染器(Vulkan 后端)。升級到 3.38.10 后,Impeller 成為強制默認。而 flutter_aliplayer 通過 SurfaceTexture/TextureView 提供視頻幀,Impeller 的 Vulkan 后端在處理外部 HardwareBuffer 時存在兼容性問題,導致 SIGABRT 崩潰。
解決:
<meta-data
android:name="io.flutter.embedding.android.EnableImpeller"
android:value="false" />