Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java OutOfMemoryError无法分配1250874912字节的分配,该分配包含16777216个可用字节和338MB,直到OOM_Java_Android_Bitmap - Fatal编程技术网

Java OutOfMemoryError无法分配1250874912字节的分配,该分配包含16777216个可用字节和338MB,直到OOM

Java OutOfMemoryError无法分配1250874912字节的分配,该分配包含16777216个可用字节和338MB,直到OOM,java,android,bitmap,Java,Android,Bitmap,我只是从drawable中获取一个图像并将其转换为位图,但当转换为位图时,它会抛出一个错误 java.lang.OutOfMemoryError:无法分配1250874912字节的分配,其中16777216个可用字节和338MB的内存直到OOM 下面是我的代码 Bitmap icon = BitmapFactory.decodeResource(getResources(), R.drawable.vr_image); int size = icon.getByt

我只是从drawable中获取一个图像并将其转换为位图,但当转换为位图时,它会抛出一个错误

java.lang.OutOfMemoryError:无法分配1250874912字节的分配,其中16777216个可用字节和338MB的内存直到OOM

下面是我的代码

Bitmap icon = BitmapFactory.decodeResource(getResources(),
            R.drawable.vr_image);
    int size = icon.getByteCount();
在stackoverflow上找到了一些解决方案,但这些解决方案也不起作用

在应用程序标记下的清单上,我定义了以下值

 android:allowBackup="true"
    android:hardwareAccelerated="false"
    android:largeHeap="true"
    android:supportsRtl="true"

因此,任何人都可以帮助我解决这个问题,但没有找到任何解决方案。

由于图像的大小,您正面临这个问题。它太大了,要么使用类库,要么减小图像的大小。最好使用毕加索。请不要增加应用程序的大小,否则会影响应用程序的性能。

您可以使用毕加索库。使用“根据设备需要像素”,您可以调整大小并加载到imageview中

 Picasso.with(context).load(incidentType.getIconServerPath()).error(R.drawable.no_image_icon).resize(mWidth, mWidth).onlyScaleDown().centerInside().into(holder.imageViewIcon,
                    new Callback() {
                        @Override
                        public void onSuccess() {
                            holder.relativeLayout.removeView(holder.progressBar);
                        }

                        @Override
                        public void onError() {
                            holder.relativeLayout.removeView(holder.progressBar);
                        }
                    });
        }
    });

你的<代码> VRZIMAGION/COD>图像的大小是什么?99 99×x34 75是图像的维度,你认为“代码”>“999 x34 75”< /代码>移动平台上的图像的正常大小,然后用文件流读取像普通文件一样的图像,并且不首先将其转换为位图。这样,您将位图的内容加载到内存中,内存大约为1.2gb(基于错误消息中的字节)。使用固定的缓冲区大小读取它,并通过套接字发送缓冲区数据enough@WarrenFaith我已经解决了你告诉我的问题,非常感谢!但我不需要放任何视图,我只需要一个位图或uri,因为我必须使用套接字将此图像发送到另一部手机