Android 什么是;在…-字节分配中内存不足“;什么意思?(安卓)

Android 什么是;在…-字节分配中内存不足“;什么意思?(安卓),android,bitmap,garbage-collection,out-of-memory,Android,Bitmap,Garbage Collection,Out Of Memory,下面这些数字是什么意思?(使用LogCat调试器捕获) 121948K和115756K是什么意思 为什么是14337016字节?大约14MB。这是不可能的!我尝试加载大小为14kB的位图 系统正在尝试释放未使用的内存,以便能够为应用程序找到更多的资源 GC\u\u\u OOM发生之前,您的应用程序的堆空间已用完 可以找到有关GC\u的更多信息 编号: gc释放了10K,6%是免费的,这太少了,所以它继续释放,直到gc到达oom。115756K/121948K是应用程序堆的统计信息 通过观察此

下面这些数字是什么意思?(使用LogCat调试器捕获)

  • 121948K和115756K是什么意思
  • 为什么是14337016字节?大约14MB。这是不可能的!我尝试加载大小为14kB的位图

系统正在尝试释放未使用的内存,以便能够为应用程序找到更多的资源

GC\u\u\u OOM
发生之前,您的应用程序的堆空间已用完

可以找到有关
GC\u的更多信息

编号: gc释放了10K,6%是免费的,这太少了,所以它继续释放,直到gc到达oom。115756K/121948K是应用程序堆的统计信息


通过观察此

可以找到有关内存的更多信息。您的应用程序正试图向操作系统请求更多内存,而操作系统拒绝分配。因此引发了此异常。。!!你确定图像是14KB吗?此外,你应该意识到Android通常不会为你的图像选择最佳格式。我可能弄错了,但它通常会选择32bpp的格式。此外,如果你在本机图像中使用彩色托盘(例如.bmp或.gif),我相信Android会将其转换为ARGB或RGB像素。这不一定是内存泄漏,他只是试图分配比他的应用程序更多的内存allowed@Samuel你是对的,从我的回答中删除
内存泄漏
单词这是因为他试图分配一大块内存。触发GC以尝试释放足够的内存,以便分配成功。这是前一部分。如果有很多未使用的对象没有被GC'd,那么
GC\u-BEFORE\u-OOM
可以帮助保存应用程序并防止内存不足异常。我确实同意,可能是某个地方的内存泄漏导致他的内存耗尽,但这是不可能的。什么是“14337016字节分配的内存不足”呢?这是否意味着虚拟机想要分配~14兆字节的内存???我所有的位图总共是2,5MB。@Marton_hun不,这意味着您的堆(分配给您的应用程序)达到了最大分配限制。这意味着已经分配了约14Mb的内存
08-03 14:29:11.538: I/dalvikvm-heap(6514): Forcing collection of SoftReferences for 14337016-byte allocation
08-03 14:29:11.568: D/dalvikvm(6514): GC_BEFORE_OOM freed 10K, 6% free 115756K/121948K, paused   29ms, total 30ms
08-03 14:29:11.568: E/dalvikvm-heap(6514): Out of memory on a 14337016-byte allocation.