Flutter 32 位 Android 设备 - mmap 失败 errno 12 内存不足

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

这只发生在 32 位 Android 设备上调试和发布模式时。 在另一台设备上,其他平台上也一切正常。

我无法找出为什么会发生这种情况。 在 Devtool 上我只能得到

requestHeapSnapshot()
这个信息。 还将
android:largeHeap="true"
添加到清单文件中。

请帮我找出发生这种情况的原因和地点。我怎样才能找到那个?如何使用 devtool 查找此问题的原因?

也尝试过配置文件模式。我得到的唯一日志是以下脚本。而且它是随机发生的。

[+218136 ms] W/Adreno-GSL(15074): <sharedmem_gpuobj_alloc:2461>: sharedmem_gpumem_alloc: mmap failed errno 12 Out of memory
[  +18 ms] E/Adreno-GSL(15074): <gsl_memory_alloc_pure:2236>: GSL MEM ERROR: kgsl_sharedmem_alloc ioctl failed.
Build fingerprint: 'xiaomi/ysl/ysl:9/PKQ1.181203.001/V12.0.2.0.PEFMIXM:user/release-keys'
Revision: '0'
ABI: 'arm'
pid: 5292, tid: 5409, name: 1.raster  >>> com.subbu.p_shop <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x1a
Cause: null pointer dereference
    r0  00000002  r1  00000003  r2  00000000  r3  a412e5c8
    r4  a9aefa58  r5  a9aef8e4  r6  00001f08  r7  00000000
    r8  a9aef600  r9  00000000  r10 00000000  r11 00000000
    ip  9c97e250  sp  8987b7d8  lr  9c137d0b  pc  9c138790
backtrace:
    #00 pc 0013f790  /vendor/lib/egl/libGLESv2_adreno.so (EsxRenderBucket::AddUnbucketedEntries(EsxCmdBufType, unsigned int)+132)
    #01 pc 0013ed07  /vendor/lib/egl/libGLESv2_adreno.so (EsxRenderBucket::BucketRenderingCmds(EsxRenderBucketParams*)+740)
    #02 pc 00172c5d  /vendor/lib/egl/libGLESv2_adreno.so (EsxContext::BucketRenderingCmds(int)+712)
    #03 pc 000d2ba7  /vendor/lib/egl/libGLESv2_adreno.so (EsxContext::BindDrawFramebuffer(EsxFramebufferObject*)+178)
    #04 pc 000a2cdd  /vendor/lib/egl/libGLESv2_adreno.so (EsxContext::GlBindFramebuffer(unsigned int, unsigned int)+332)
    #05 pc 01b9aba1  /data/app/com.subbu.p_shop-6wA9xoQ3OknHQqrmLioLXw==/lib/arm/libflutter.so (offset 0x188d000)
Lost connection to device.
android flutter out-of-memory heap-memory 32-bit
1个回答
0
投票

Isar 不支持 x32 平台。

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