新的版本上线了,第二天就看到了反馈回来的错误,比较多的一个错误是java.lang.OutOfMemoryError: bitmap size exceeds VM budget,对于这样的菜鸟看这个问题去修改那是不可能滴,我就看着老大去怎么修改的。内存溢出一般是因为太多的图片引起的,他就在思考图片加载和清理的问题,想到了pad版本都没有出现过类似的问题,为什么手机版就出现了呢。大概的看了一下pad版本的代码,突然想到了页面跳转之后忘了对图片的缓存进行回收,在代码中加上
@Override
public void onDestroy() {
super.onDestroy();
if(checkImage != null) {
checkImage.clearBitmap();
}
}
问题就得了解决,checkImage变量是用于处理图片加载的问题。我们的客户端对需要使用很多图片,图片在程序中的处理方式是第一步首先检查内存中是否存在加载的图片,第二步如果没有就检查本地(SD卡)中有没有存储的图片,最后才是到服务器端进行请求。系统本身会对内存进行相应的处理,但是因为图片加载的比较多比较频繁,如果不进行手动清理,也是容易出现内存溢出的问题的。
clearBitmap函数:
public void clearBitmap() {
if(hm != null) {
try {
Iterator<Map.Entry<String, Bitmap>> it = hm.entrySet().iterator();
while(it.hasNext()) {
Map.Entry<String, Bitmap> entry = it.next();
Bitmap bm = entry.getValue();
bm.recycle();
bm = null;
}
hm.clear();
}catch (Exception e) {
}
}
}
另外遇到的一个问题就是一些空指针的错误Caused by: java.lang.NullPointerException,这个问题出现的频率也是比较大的一个,但是这个问题又不是自己 能够解决的,属于偶发性错误,对于这样的错误,我们要做的只是保证客户端不崩溃就行了,所以找到错误对应的行,查看空指针大概出现的位置,然后使用try catch捕获就行了,不需要进行别的任何的处理就行了。因为这个错误不会影响到下单和查看客户端的一些重要的信息。
分享到:
相关推荐
android加载大量图片内存溢出的三种解决办法
android 图片下载 有效解决内存溢出问题 android 图片下载 有效解决内存溢出问题
针对Android应用中Gallery内存溢出的解决方案
基本上解决了OOM问题 如果 方便可以直接引用BitmapManager类到 项目中使用 解决blog 地址http://www.cnblogs.com/liongname/articles/2345087.html
一个android小工程,里面有我自己写的一个工具类,可以轻松避免加载图片列表内存溢出,分享给需要的朋友,工程使用android 1.6SDK完成
Android有效解决加载大图片时内存溢出的问题
android 解析加载图片是一个常用的技术 但是如何优化 这是一个问题 想要用户体验好必须加载速度快 稳定 那么你看了这个代码就明白了
分虽然多了点,但是项目...图片过大内存溢出:在图片读取是处理里图片,解决了溢出问题 项目下载后,直接导入就可以运行,是2.2的版本,有个插件android-async-http-1.4.4.jar,可能要配置下,还有服务器,端口是8080
内存溢出产生原因多种多样,当内存严重不足时,内核有两种选择: 直接panic 杀掉部分进程,释放一些内核。 大部分情况下,会杀掉导致OOM的进程,然后系统恢复。通常我们会添加对内存的监控报警,例如:当memory或...
jboss内存溢出 jboss内存溢出 jboss内存溢出
Android防止内存溢出浅析.zip
解决内存溢出的问题,在使用myeclipse时候,经常遇到内存溢出的问题。
内存溢出配置,内存溢出配置内存溢出配置内存溢出配置
android 的内存溢出和泄露问题. 内存溢出就是分配的内存不足以放下数据项序列。如在一个域中输入的数据超过了它的要求就会引发数据溢出问题,多余的数据就可以作为指令在计算机上运行。 内存泄漏是指在堆上分配...
Tomcat内存溢出三种情况及解决办法,不同的异常采用不同的方式解决,不能盲目的增加内存就可以了。
关于android内存机制的介绍,以及bitmap的内存泄露等问题的处理方式
但是如果程序在一次操作中打开几个M的文件,那么通常会出现下面的错误信息。 02-04 21:46:08.703: ERROR/dalvikvm-heap(2429): 1920000-byte external allocation too large for this process
Android防止内存溢出浅析
在生产环境中tomcat内存设置不好很容易出现内存溢出。造成内存原因是不一样的,当然处理方式也不一样。本文就介绍了Tomcat内存溢出的三种情况及解决办法分析
spring mvc重定向导致内存溢出解决方案