报OutOfMemoryError错误怎么处理

Posted 觉绝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了报OutOfMemoryError错误怎么处理相关的知识,希望对你有一定的参考价值。

 

一般出现这样的错误就是内存溢出了,资源文件太大了,我今天运行程序是一直报这个错误,结果发现是图片太大的问题,只要将图片的尺寸缩小就可以解决了

  1、缩小图片

BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;//图片宽高都为原来的四分之一,即图片为原来的八分之一

2、将options设置到到Bitmap里面

Bitmap bitmap = BitmapFactory.decodeStream(ContextApplication.getContext().getContentResolver().openInputStream(Uri.parse(uri)),null,options);

这里是通过Uri来获取图片

这样就把问题解决了,于此同时又发现了另一个问题,是关于Fragment的,我自定义了一个Fragment,并定义了一个带参的构造函数,结果就报错,
说必须要有无参的构造函数,通过查阅网上的知识发现也都说Fragment必须要有无参的构造函数,那么是为什么了?

因为Activity在加载Fragment时,运行
super.onCreate(savedInstanceState);时会去调用Fragemnt的无参构造函数,如果没有,因为找不到,通过反射自然就会报错。


其他的内存溢出问题可参照http://blog.csdn.net/wanghao200906/article/details/50426881 
 

以上是关于报OutOfMemoryError错误怎么处理的主要内容,如果未能解决你的问题,请参考以下文章

java.lang.OutOfMemoryError处理错误

java.lang.OutOfMemoryError处理错误

HDFS问题集,使用命令报错:com.google.protobuf.ServiceException:java.lang.OutOfMemoryError:java heap space(示例(代码

本地启动tomcat的时候报内存溢出错误:java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: PermGen sp

java.lang.OutOfMemoryError: unable to create new native thread 居然是MQ问题

Linux环境Tomcat运行报错java.lang.OutOfMemoryError