Flutter Android TV:快速加载流时应用程序崩溃

问题描述 投票:0回答:1

我在 Android TV 上为 Flutter 创建了一个测试应用程序,可以通过 StreamingUrl 播放外部流。最初加载流并播放效果很好。

当我想使用遥控器上的频道向上/向下按钮“切换”可用的不同流时,问题就开始了。 经常这样做时,应用程序会在某个时刻崩溃,只给我一个“墓碑”,其中包含对问题所在的模糊描述。

我已经尝试过 Flutter Profiler 来检查它是否与内存/性能相关,但到目前为止这似乎不是问题。

此外:有些硬件规格不同的设备永远不会出现此问题。

我正在使用带有一些自定义功能的 Android Media3 库来播放流并处理 DRM 情况。因此流的播放是本地处理的。

Skia渲染引擎似乎想要渲染一帧,但未能做到这一点,导致在某个时刻崩溃。但为什么以及如何发生这种情况对我来说仍然是一个很大的谜。

任何人都可以通过回答以下问题之一来帮助我指出解决此问题的正确方向:

  • 这是一个已知问题吗?
  • 会不会是Flutter渲染引擎导致的?
  • Impeller 可能会解决这个问题吗?我应该等到它发布吗?
  • 其他指针也很棒!

墓碑的堆栈跟踪从这一行开始:

2024-01-24 14:49:16.152 29103-29103 DEBUG                   crash_dump32                         A  signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xe675b014

最后一个被调用且可读的方法如下所示:

2024-01-24 14:49:16.297 29103-29103 DEBUG                   crash_dump32                         A        #05 pc 00646385  /vendor/lib/egl/libGLES_mali.so (eglCreateImageKHR+948) (BuildId: dfee92a81a346322de88278804aa7d5a)

从SIGSEGV开始的整个墓碑看起来像这样:

2024-01-24 14:49:16.152 29103-29103 DEBUG                   crash_dump32                         A  signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xe675b014
2024-01-24 14:49:16.152 29103-29103 DEBUG                   crash_dump32                         A      r0  e675b000  r1  e675b001  r2  00000001  r3  00000001
2024-01-24 14:49:16.152 29103-29103 DEBUG                   crash_dump32                         A      r4  b7017600  r5  bcc47888  r6  00000001  r7  ccc555b0
2024-01-24 14:49:16.152 29103-29103 DEBUG                   crash_dump32                         A      r8  e7d48260  r9  bcc47984  r10 9bbc3968  r11 b7017600
2024-01-24 14:49:16.152 29103-29103 DEBUG                   crash_dump32                         A      ip  bcc47838  sp  bcc47870  lr  e7cfc98b  pc  ccfcfd86
2024-01-24 14:49:16.297 29103-29103 DEBUG                   crash_dump32                         A        #00 pc 0063dd86  /vendor/lib/egl/libGLES_mali.so (BuildId: dfee92a81a346322de88278804aa7d5a)
2024-01-24 14:49:16.297 29103-29103 DEBUG                   crash_dump32                         A        #01 pc 0063e39f  /vendor/lib/egl/libGLES_mali.so (BuildId: dfee92a81a346322de88278804aa7d5a)
2024-01-24 14:49:16.297 29103-29103 DEBUG                   crash_dump32                         A        #02 pc 00640243  /vendor/lib/egl/libGLES_mali.so (BuildId: dfee92a81a346322de88278804aa7d5a)
2024-01-24 14:49:16.297 29103-29103 DEBUG                   crash_dump32                         A        #03 pc 0063ff09  /vendor/lib/egl/libGLES_mali.so (BuildId: dfee92a81a346322de88278804aa7d5a)
2024-01-24 14:49:16.297 29103-29103 DEBUG                   crash_dump32                         A        #04 pc 0063f95f  /vendor/lib/egl/libGLES_mali.so (BuildId: dfee92a81a346322de88278804aa7d5a)
2024-01-24 14:49:16.297 29103-29103 DEBUG                   crash_dump32                         A        #05 pc 00646385  /vendor/lib/egl/libGLES_mali.so (eglCreateImageKHR+948) (BuildId: dfee92a81a346322de88278804aa7d5a)
2024-01-24 14:49:16.297 29103-29103 DEBUG                   crash_dump32                         A        #06 pc 00016e87  /system/lib/libEGL.so (void* android::eglCreateImageTmpl<int, void* (*)(void*, void*, unsigned int, void*, int const*)>(void*, void*, unsigned int, void*, int const*, void* (*)(void*, void*, unsigned int, void*, int const*))+310) (BuildId: 9c077f0f22a38f0ef41b19770721e8ec)
2024-01-24 14:49:16.297 29103-29103 DEBUG                   crash_dump32                         A        #07 pc 00016d43  /system/lib/libEGL.so (android::eglCreateImageKHRImpl(void*, void*, unsigned int, void*, int const*)+22) (BuildId: 9c077f0f22a38f0ef41b19770721e8ec)
2024-01-24 14:49:16.297 29103-29103 DEBUG                   crash_dump32                         A        #08 pc 002315f9  /system/lib/libhwui.so (GrAHardwareBufferUtils::MakeBackendTexture(GrContext*, AHardwareBuffer*, int, int, void (**)(void*), void**, bool, GrBackendFormat const&, bool)+136) (BuildId: ab1701da2387beb5140b7e133cfadf83)
2024-01-24 14:49:16.297 29103-29103 DEBUG                   crash_dump32                         A        #09 pc 00231293  /system/lib/libhwui.so (_ZNSt3__110__function6__funcIZN31GrAHardwareBufferImageGenerator9makeProxyEP18GrRecordingContextE3$_0NS_9allocatorIS5_EEF5sk_spI9GrSurfaceEP18GrResourceProviderEEclEOSC_$2219a8229c88f20838122b4c217f5d45+70) (BuildId: ab1701da2387beb5140b7e133cfadf83)
2024-01-24 14:49:16.297 29103-29103 DEBUG                   crash_dump32                         A        #10 pc 001e4b9b  /system/lib/libhwui.so (GrSurfaceProxyPriv::doLazyInstantiation(GrResourceProvider*)+70) (BuildId: ab1701da2387beb5140b7e133cfadf83)
2024-01-24 14:49:16.297 29103-29103 DEBUG                   crash_dump32                         A        #11 pc 00196163  /system/lib/libhwui.so (GrResourceAllocator::addInterval(GrSurfaceProxy*, unsigned int, unsigned int)+322) (BuildId: ab1701da2387beb5140b7e133cfadf83)
2024-01-24 14:49:16.297 29103-29103 DEBUG                   crash_dump32                         A        #12 pc 003dec5f  /system/lib/libhwui.so (_ZNK12_GLOBAL__N_19TextureOp12visitProxiesERKNSt3__18functionIFvP14GrSurfaceProxyEEEN4GrOp11VisitorTypeE$ab67424b01b2ae857b75443a16f18610+90) (BuildId: ab1701da2387beb5140b7e133cfadf83)
2024-01-24 14:49:16.297 29103-29103 DEBUG                   crash_dump32                         A        #13 pc 0019385d  /system/lib/libhwui.so (GrRenderTargetOpList::OpChain::visitProxies(std::__1::function<void (GrSurfaceProxy*)> const&, GrOp::VisitorType) const+40) (BuildId: ab1701da2387beb5140b7e133cfadf83)
2024-01-24 14:49:16.297 29103-29103 DEBUG                   crash_dump32                         A        #14 pc 001937a5  /system/lib/libhwui.so (GrRenderTargetOpList::gatherProxyIntervals(GrResourceAllocator*) const+116) (BuildId: ab1701da2387beb5140b7e133cfadf83)
2024-01-24 14:49:16.297 29103-29103 DEBUG                   crash_dump32                         A        #15 pc 001fc6ff  /system/lib/libhwui.so (GrDrawingManager::flush(GrSurfaceProxy*, SkSurface::BackendSurfaceAccess, GrFlushFlags, int, GrBackendSemaphore*, void (*)(void*), void*)+638) (BuildId: ab1701da2387beb5140b7e133cfadf83)
2024-01-24 14:49:16.299 29103-29103 DEBUG                   crash_dump32                         A        #16 pc 001fc3f3  /system/lib/libhwui.so (GrDrawingManager::prepareSurfaceForExternalIO(GrSurfaceProxy*, SkSurface::BackendSurfaceAccess, GrFlushFlags, int, GrBackendSemaphore*, void (*)(void*), void*)+118) (BuildId: ab1701da2387beb5140b7e133cfadf83)
2024-01-24 14:49:16.299 29103-29103 DEBUG                   crash_dump32                         A        #17 pc 001fc2c9  /system/lib/libhwui.so (GrRenderTargetContext::prepareForExternalIO(SkSurface::BackendSurfaceAccess, GrFlushFlags, int, GrBackendSemaphore*, void (*)(void*), void*)+92) (BuildId: ab1701da2387beb5140b7e133cfadf83)
2024-01-24 14:49:16.299 29103-29103 DEBUG                   crash_dump32                         A        #18 pc 001fc265  /system/lib/libhwui.so (SkGpuDevice::flush()+22) (BuildId: ab1701da2387beb5140b7e133cfadf83)
2024-01-24 14:49:16.299 29103-29103 DEBUG                   crash_dump32                         A        #19 pc 001b8f87  /system/lib/libhwui.so (android::uirenderer::skiapipeline::SkiaPipeline::renderFrame(android::uirenderer::LayerUpdateQueue const&, SkRect const&, std::__1::vector<android::sp<android::uirenderer::RenderNode>, std::__1::allocator<android::sp<android::uirenderer::RenderNode>>> const&, bool, android::uirenderer::Rect const&, sk_sp<SkSurface>, SkMatrix const&)+146) (BuildId: ab1701da2387beb5140b7e133cfadf83)
2024-01-24 14:49:16.299 29103-29103 DEBUG                   crash_dump32                         A        #20 pc 001b8ca1  /system/lib/libhwui.so (android::uirenderer::skiapipeline::SkiaOpenGLPipeline::draw(android::uirenderer::renderthread::Frame const&, SkRect const&, SkRect const&, android::uirenderer::LightGeometry const&, android::uirenderer::LayerUpdateQueue*, android::uirenderer::Rect const&, bool, android::uirenderer::LightInfo const&, std::__1::vector<android::sp<android::uirenderer::RenderNode>, std::__1::allocator<android::sp<android::uirenderer::RenderNode>>> const&, android::uirenderer::FrameInfoVisualizer*)+272) (BuildId: ab1701da2387beb5140b7e133cfadf83)
2024-01-24 14:49:16.299 29103-29103 DEBUG                   crash_dump32                         A        #21 pc 001fa2d5  /system/lib/libhwui.so (android::uirenderer::renderthread::CanvasContext::draw()+216) (BuildId: ab1701da2387beb5140b7e133cfadf83)
2024-01-24 14:49:16.299 29103-29103 DEBUG                   crash_dump32                         A        #22 pc 001f98b1  /system/lib/libhwui.so (_ZNSt3__110__function6__funcIZN7android10uirenderer12renderthread13DrawFrameTask11postAndWaitEvE3$_0NS_9allocatorIS6_EEFvvEEclEv$c303f2d2360db58ed70a2d0ac7ed911b+176) (BuildId: ab1701da2387beb5140b7e133cfadf83)
2024-01-24 14:49:16.299 29103-29103 DEBUG                   crash_dump32                         A        #23 pc 002050c3  /system/lib/libhwui.so (android::uirenderer::WorkQueue::process()+158) (BuildId: ab1701da2387beb5140b7e133cfadf83)
2024-01-24 14:49:16.299 29103-29103 DEBUG                   crash_dump32                         A        #24 pc 00204f1b  /system/lib/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+54) (BuildId: ab1701da2387beb5140b7e133cfadf83)
2024-01-24 14:49:16.299 29103-29103 DEBUG                   crash_dump32                         A        #25 pc 0000d903  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+182) (BuildId: 5033a2d0383ba79896a60621c50f40e1)
2024-01-24 14:49:16.299 29103-29103 DEBUG                   crash_dump32                         A        #26 pc 000a6087  /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+20) (BuildId: f2641c48dc0dc78cb6357b8c19e46a43)
2024-01-24 14:49:16.299 29103-29103 DEBUG                   crash_dump32                         A        #27 pc 00060141  /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+30) (BuildId: f2641c48dc0dc78cb6357b8c19e46a43)
android flutter android-tv skia smart-tv
1个回答
0
投票

有类似的问题,问题是我没有在每次 zap 后释放播放器(调用player.release())。

你说这不是内存问题,但可以尝试一下。

© www.soinside.com 2019 - 2024. All rights reserved.