gpt4 book ai didi

android - 由于setCotentView(R.layout_file_name)行的内存不足异常,导致应用程序崩溃

转载 作者:行者123 更新时间:2023-12-03 09:14:45 24 4
gpt4 key购买 nike

它在以下情况下发出内存不足错误:

        setContentView(R.layout.activity_home);

错误日志是-
USER_COMMENT=null
ANDROID_VERSION=5.0
APP_VERSION_NAME=1.0
BRAND=samsung
PHONE_MODEL=SM-G900H
CUSTOM_DATA=
STACK_TRACE=java.lang.OutOfMemoryError: Failed to allocate a 944652 byte allocation with 751892 free bytes and 734KB until OOM
...........................

而且有时还会在同一行膨胀时给出二进制xml错误。
而且错误是有时我每次运行代码时都没有得到。
是否有人也知道或知道原因?提前致谢。

最佳答案

正如评论所建议的,这与您正在加载的图像大小有关。

首先,仅将图像用作目标屏幕大小的资源,然后使用具有不同密度和大小的资源文件夹为每个设备提供适当的图像。 (HDPI,XHDPI,ETC)

还要考虑到内存分配与位图的2的幂有关,因此,稍微小的大小可能会有很大的不同,您可以在BitmapFactory中使用类似的方法进行测试。

public static int calculateInSampleSize(
BitmapFactory.Options options, int reqWidth, int reqHeight) {
// Raw height and width of image
final int height = options.outHeight;
final int width = options.outWidth;
int inSampleSize = 1;

if (height > reqHeight || width > reqWidth) {

final int halfHeight = height / 2;
final int halfWidth = width / 2;

// Calculate the largest inSampleSize value that is a power of 2 and keeps both
// height and width larger than the requested height and width.
while ((halfHeight / inSampleSize) > reqHeight
&& (halfWidth / inSampleSize) > reqWidth) {
inSampleSize *= 2;
}
}

return inSampleSize;

}

从android doc处理位图: http://developer.android.com/intl/es/training/displaying-bitmaps/load-bitmap.html#load-bitmap

关于android - 由于setCotentView(R.layout_file_name)行的内存不足异常,导致应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36624849/

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