报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 
 

posted on 2017-05-09 19:33  觉绝  阅读(1777)  评论(0编辑  收藏  举报

导航