OutOfMemoryError 消息的清晰解释
Clear explanation of the OutOfMemoryError message
我的 Android 应用触发了这样的 OutOfMemoryError:
java.lang.OutOfMemoryError: Failed to allocate a 74649612 byte allocation with 1048576 free bytes and 63MB until OOM
任何人都可以解释每个值的含义(“字节分配”、“空闲字节”和“直到 OOM")?这条消息让我有点困惑。
详细信息:据我了解:在出现 OutOfMemoryError 异常之前还有 63MB,我们尝试分配 74649612 字节,但只有 1048576 字节可用。 (如果我们有“1048576 个空闲字节”,为什么我们有“63MB 直到 OOM”?我们是否有 63MB + 1048576 个空闲字节完全可用,我们正在尝试分配更多,比如 74649612 字节?)
"Byte allocation" 指的是您尝试在单个块中分配多少内存。在本例中,即 74649612 字节。此分配请求大部分时间都会失败。
"Free bytes"指的是在不扩充堆的情况下,你的堆上还有多少字节的空闲space可用。在本例中,即 1048576 字节。但是请注意,这些 "free bytes" 可能不在一个连续的块中。通常,这个免费的 space 会被分成很多小块。
"Until OOM" 表示您的堆可以扩展到超出其当前大小。根据设备特性,每个进程都有一个堆限制。在您的情况下,堆可以从其当前大小扩展 63MB,直至达到堆大小限制。但是,即使这样也不足以为您提供您所请求大小的单个连续空闲内存块。
OutOfMemoryError
是 android 中最常见的问题,尤其是在处理位图时。当由于内存不足 space 而无法分配对象时,Java 虚拟机 (JVM) 会抛出此错误,而且垃圾收集器无法释放一些 space.
阅读所有 5 课并再次重写您的代码。如果它仍然不起作用,我们将很高兴看到您在教程中做错了什么 material。
这里是 SOF 中此类错误的一些可能答案
Android: BitmapFactory.decodeStream() 内存不足,400KB 文件和 2MB 空闲堆
如何解决 java.lang.OutOfMemoryError Android
中的麻烦
Android : java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
OutOfMemoryError 的解决方案:位图大小超出 VM 预算
请您使用该图像。这个图像尺寸非常大,这是个问题。你可以调整图片大小
我的 Android 应用触发了这样的 OutOfMemoryError:
java.lang.OutOfMemoryError: Failed to allocate a 74649612 byte allocation with 1048576 free bytes and 63MB until OOM
任何人都可以解释每个值的含义(“字节分配”、“空闲字节”和“直到 OOM")?这条消息让我有点困惑。
详细信息:据我了解:在出现 OutOfMemoryError 异常之前还有 63MB,我们尝试分配 74649612 字节,但只有 1048576 字节可用。 (如果我们有“1048576 个空闲字节”,为什么我们有“63MB 直到 OOM”?我们是否有 63MB + 1048576 个空闲字节完全可用,我们正在尝试分配更多,比如 74649612 字节?)
"Byte allocation" 指的是您尝试在单个块中分配多少内存。在本例中,即 74649612 字节。此分配请求大部分时间都会失败。
"Free bytes"指的是在不扩充堆的情况下,你的堆上还有多少字节的空闲space可用。在本例中,即 1048576 字节。但是请注意,这些 "free bytes" 可能不在一个连续的块中。通常,这个免费的 space 会被分成很多小块。
"Until OOM" 表示您的堆可以扩展到超出其当前大小。根据设备特性,每个进程都有一个堆限制。在您的情况下,堆可以从其当前大小扩展 63MB,直至达到堆大小限制。但是,即使这样也不足以为您提供您所请求大小的单个连续空闲内存块。
OutOfMemoryError
是 android 中最常见的问题,尤其是在处理位图时。当由于内存不足 space 而无法分配对象时,Java 虚拟机 (JVM) 会抛出此错误,而且垃圾收集器无法释放一些 space.
阅读所有 5 课并再次重写您的代码。如果它仍然不起作用,我们将很高兴看到您在教程中做错了什么 material。
这里是 SOF 中此类错误的一些可能答案
Android: BitmapFactory.decodeStream() 内存不足,400KB 文件和 2MB 空闲堆
如何解决 java.lang.OutOfMemoryError Android
中的麻烦Android : java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
OutOfMemoryError 的解决方案:位图大小超出 VM 预算
请您使用该图像。这个图像尺寸非常大,这是个问题。你可以调整图片大小