Android 原因:java.lang.OutOfMemoryError:无法分配35624972字节的分配,4194304个可用字节和28MB的内存,直到OOM

Android 原因:java.lang.OutOfMemoryError:无法分配35624972字节的分配,4194304个可用字节和28MB的内存,直到OOM,android,Android,这是我的密码: BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeResource(getResources(), R.drawable.background, options); options.inSampleSize = 2; options.inJustDecodeBounds = false; Bitmap

这是我的密码:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(getResources(), R.drawable.background, options);
options.inSampleSize = 2;
options.inJustDecodeBounds = false;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.background, options);
imageView.setImageBitmap(bitmap);  

正如您从代码中看到的,我尝试过优化位图,它适用于除Android Studio 2.0虚拟设备(nexus 6p API23)之外的所有情况,有人能给我一个提示吗?谢谢。

这会提醒您,在某些设备中,执行此操作时可能会出现内存问题。尝试调整图像大小以缩小其大小。您也可以在清单中使用android:largeHeap=“true”设置一个更大的内存堆,但我不建议这样做。

多亏了@commonware和@petey,这对我有用。

“我已经尝试过优化位图”--不,您没有。您可以找到资源的大小。。。然后完全忽略这个结果,硬编码
inSampleSize
2。您的第一个
decodeResource()
调用是毫无意义的。您的资源太大或位于错误的目录中,因为您正在尝试加载相当于2984px x x 2984px映像的内容。请尝试使用“为什么不推荐largeHeap=”true“中概述的方法?它在那里可以使用。