gpt4 book ai didi

android - Android ICS 4.0 中的 dlmalloc 或 dlfree 中的堆内存损坏和 SIGSEGV 错误

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:35:56 25 4
gpt4 key购买 nike

因为在我考虑在此发布问题和我的解决方案之前找不到任何人报告此行为,以便它可以帮助遇到此问题的其他人。我们的应用程序在 ICS 之前的设备上运行良好。我们在 Galaxy Nexus 和 ICS 模拟器上测试了我们的应用程序,发现了以下类型的奇怪进程崩溃:

dlmalloc 中的堆内存损坏

dlfree 中的堆内存损坏

信号 11 (SIGSEGV), 故障地址 deadbaad

问题是崩溃发生在 native 空间中,因此没有任何直接影响它的自写代码。由于我们处理列表中的大量图像并且系统为这些图像分配位图,唯一想到的是一些糟糕的位图处理。我们遵循网络上的所有最佳实践,甚至通过调用 bitmap.recycle() 帮助 GC 收集不需要的资源。无论如何,由于某些未知原因,该应用程序在 Android ICS 4.0 上不断崩溃。

最佳答案

经过一些调查,我删除了对 recycle() 的调用,现在一切正常。 ICS 中的垃圾收集器似乎已经正确清除了位图。我们对 recycle() 的调用导致系统尝试释放 native 空间中的内存,但内存已被系统清除。不知何故发生了错误的内存访问,系统崩溃了。因此,如果您正在为 Android ICS 4.0 编程并且遇到这些问题,您可能想要尝试不显式回收位图。

关于android - Android ICS 4.0 中的 dlmalloc 或 dlfree 中的堆内存损坏和 SIGSEGV 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8430943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com