SIGABRT ImageGetHardwareBuffer

异常进程#线程

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 不兼容

堆栈关键帧:

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) ← 调用失败 → 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" />

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容