gpt4 book ai didi

android - "java.lang.OutOfMemoryError"在 Android 中新建一个 int 数组时

转载 作者:行者123 更新时间:2023-11-29 18:03:38 25 4
gpt4 key购买 nike

问题出现在最后一行,当我尝试新建这样一个数组时,它崩溃了。在 Logcat 中,它显示“java.lang.OutOfMemoryError”。那是什么意思?请帮忙。

Bitmap bmap;
Bitmap bMapRotate;
int bmapWidth;
int bmapHeight;
int[] bmapColorArray;
int bmapColorArraySize;

bmapWidth = bmap.getWidth();
bmapHeight = bmap.getHeight();
bmapColorArraySize = bmapWidth * bmapHeight;
bmapColorArray = new int[bmapColorArraySize];
bmap.getPixels(bmapColorArray, 0, bmapWidth, 0, 0, bmapWidth, bmapHeight);

然后调用将这个 int Array 传递给 native 层。

最佳答案

Android 应用程序的可用内存量有限。取决于屏幕分辨率/大小,从 16MB 到 24MB (IIRC)。

因此,如果您为大图像(1000 万像素)分配多个数组,您的内存很快就会满。

尽量只存储必要的信息。如果您使用的是图像的缩放版本(您可能是),请存储缩放版本而不是完整的原始版本。另外,不要将您(可能)不会再次使用的图像保存在内存中。

换句话说,尽量保守你的内存,尤其是大内存分配。

关于android - "java.lang.OutOfMemoryError"在 Android 中新建一个 int 数组时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14474824/

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