Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.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
Android 将URL解码为位图时发生java.lang.OutOfMemoryError?_Android_Bitmap - Fatal编程技术网

Android 将URL解码为位图时发生java.lang.OutOfMemoryError?

Android 将URL解码为位图时发生java.lang.OutOfMemoryError?,android,bitmap,Android,Bitmap,我已经创建了一个android应用程序,其中包含我正在从URL解码的图像。我在将URL解码为位图时遇到以下错误。它发生在随机电话上。最好的情况是不发生错误 以下是错误: Caused by: java.lang.OutOfMemoryError at android.graphics.BitmapFactory.nativeDecodeStream(BitmapFactory.java) at android.graphics.BitmapFactory.decode

我已经创建了一个android应用程序,其中包含我正在从URL解码的图像。我在将URL解码为位图时遇到以下错误。它发生在随机电话上。最好的情况是不发生错误

以下是错误:

Caused by: java.lang.OutOfMemoryError
       at android.graphics.BitmapFactory.nativeDecodeStream(BitmapFactory.java)
       at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:663)
       at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:735)
这是我用来解码图像url的代码:

  Bitmap mIcon11 = null;
String filePath = imageURL;
InputStream in = null;
in = new java.net.URL(filePath).openStream();
BitmapFactory.Options o = new BitmapFactory.Options();
o.inSampleSize = 8;
o.inJustDecodeBounds = true;
o.inPurgeable = true;
mIcon11 = BitmapFactory.decodeStream(in);
return mIcon11; 
我不希望它在任何情况下崩溃


请帮助

您可以使用Universal image loader图书馆。 它可以很好地处理图像,还可以为它们提供缓存。

您可以使用:-
ImageLoader.getInstance.loadImageSyncuri,targetImageSize,选项

您好,请使用Aquery或universal library来管理解码图像或管理图像。我认为这些是最好的。我也遇到了类似的问题。我使用了这些,现在outofmemory错误很少。

在我的情况下,我通过减小图像的宽度和高度来修复此类错误。这可能也是您的情况,错误与您的原因是:java.lang.OutOfMemoryError。仔细检查您在应用程序中使用的所有图像,可能其中一些图像的宽度/高度与其他图像不同。我认为您将在某些特定设备上崩溃,而不是在所有安卓设备上崩溃,因为我的场景是,我的应用程序无法在三星s3、s4注2中打开,xperia c等,但都做得很好。实际上,图像导致的问题在设备屏幕上是不可调整的。

在使用位图之前,您必须先浏览android的“高效加载大型位图”部分,这里有类似的问题@almasshaikh我已经插入了该问题,以便回收和发布。让seeHi图像大小相同。实际上,我正在设置墙纸,它需要一个位图对象作为输入,所以当解码失败时,我正在使用毕加索,我提供了将图像设置为墙纸的选项,其中我需要将URL解码为位图,这是输入方法。我在使用毕加索,我提供了将图像设置为墙纸的选项,其中我需要将URL解码为位图,这是我认为通用图像加载器对于位图的处理有很好的实现,尝试解决这个问题。