bitmap size exceeds VM budget
bitmap size exceeds VM budget
we can avoid this error by the following parts:
1 its not how much images the screen has, but being carefull on cleaning everything up when finishing the activity
2 Technique to Avoid, #3: Going Overboard with Layouts:
Due to changes in the View rendering infrastructure, unreasonably deep (more than 10 or so) or broad (more than 30 total) View hierarchies in layouts are now likely to cause crashes. This was always a risk for excessively complex layouts, but you can think of Android 1.5 as being better than 1.1 at exposing this problem. Most developers won't need to worry about this, but if your app has very complicated layouts, you'll need to put it on a diet. You can simplify your layouts using the more advanced layout classes like FrameLayout and TableLayout.
If your application involve many images,(some times may be seldom.),if causing this error,you can check the following aspects:
1 . Is your "Bitmap" object released before the "Activity" finished which it's belonged ?
you can use "recycle()","System.gc()", if a arraylist,you can use "clear()" ,do it before your activity finished.
for example:
try{ Intent myintent=new Intent(); Bundle bun=new Bundle(); bun.putInt("position", position); myintent.putExtras(bun); setResult(RESULT_OK,myintent); imageAdapter.bitmaplist.clear(); System.gc(); thisActivity.finish(); } catch (OutOfMemoryError e) { e.printStackTrace(); } |
2. You can consider to reduce the qulity of the image .Although is not a good idea.
BitmapFactory.Options opts=new BitmapFactory.Options(); opts.inSampleSize =2; //the value you can set bigger than 1. Bitmap imgBitmap=null; imgBitmap = BitmapFactory.decodeStream(fs, null, opts); |
3. Make pictures smaller.when you generate the picture ,you can do :
Bitmap bitmap = Bitmap.createScaledBitmap(cacheBitmap,330, 300, false); |
4. Definition your software' memory size,we can use this class: dalvik.system.VMRuntime
private final static int CWJ_HEAP_SIZE = 6* 1024* 1024 ; |
when using:
VMRuntime.getRuntime().setMinimumHeapSize(CWJ_HEAP_SIZE); //here,set 6MB |
5. make the Dalvik virtual machine optimized on heap memory allocation.
private final static float TARGET_HEAP_UTILIZATION = 0.75f; |
when using:
VMRuntime.getRuntime().setTargetHeapUtilization(TARGET_HEAP_UTILIZATION); |
6. Don't forget.. make the debug more convenient
try { …… } catch (OutOfMemoryError e) { e.printStackTrace(); } |
Ok ,that's all.
bitmap size exceeds VM budget的更多相关文章
- java.lang.OutOfMemoryError: bitmap size exceeds VM budget解决方法
1 BitmapFactory.decodeFile(imageFile); 用BitmapFactory解码一张图片时,有时会遇到该错误.这往往是由于图片过大造成的.要想正常使用,则需要分配更少的内 ...
- android报错及解决1--Bitmap加载时,报bitmap size exceeds VM budget
报错描述: 用Bitmap加载图片资源时,报错java.lang.OutOfMemoryError: bitmap size exceeds VM budget 原因分析: android系统限制,只 ...
- 【Android】Bitmap加载图片错误 java.lang.OutOfMemoryError: bitmap size exceeds VM budget
今天测试程序的时候出现下面的错误日志信息,程序当场挂掉 07-09 14:11:25.434: W/System.err(4890): java.lang.OutOfMemoryError: bitm ...
- (转)解决 bitmap size exceeds VM budget (Out Of Memory 内存溢出)的问题
在做图片处理的时候最常遇到的问题估计就是Out Of Memory (内存溢出)了 网上对这种问题的解决方案很多,原来无非就是压缩图片大小 本不该重复造轮子,但实际中却遇见了问题,写出来希望后来者能引 ...
- Android解决java.lang.OutOfMemoryError: bitmap size exceeds VM budget(转)
昨天遇到这个问题就是从一个输入流里调用BitmapFactory.decodeStream(this.getContentResolver().openInputStream(uri))得到一个bit ...
- 【android错误】bitmap size exceeds 32bits
使用图片缩放时遇到这么个问题: java.lang.IllegalArgumentException: bitmap size exceeds 32bits 后来一行行查代码,发现原来是 scale ...
- [Intellij IDEA]File size exceeds configured limit(2560000). Code insight features are not available
在使用 IDEA, 发现一个问题File size exceeds configured limit (2560000). Code insight features not available.
- File attachment or query results size exceeds allowable value of 1000000 bytes.
今天早晨,收到了作业执行失败的邮件(前几天还能正常执行该作业.不知为何今天出错) 邮件显示,作业的第三个步骤报错. step3内容: msdb.dbo.sp_send_dbmail @prof ...
- Intellij IDEA中file size exceeds configured limit解决
把Hadoop源码导入IDEA中后,其中有个ClientNamenodeProtocolProtos文件代码高达82997行,IDEA直接就不把它当java类看了,报file size exceeds ...
随机推荐
- PCA的数学原理
PCA(Principal Component Analysis)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维 数据的 ...
- sql查询重复记录并取对应最小值
原表(aa): id a b 1 22 456 2 22 256 ...
- maven时候Embedded error: error in opening zip file
maven时候Embedded error: error in opening zip file 用 mvn clean install -Dmaven.test.skip=true -Denv=re ...
- VMware虚拟系统 bridged、NAT、host-only三种网络连接模式
目录 前言 bridged(桥接模式) NAT(网络地址转换模式) host-only(仅主机模式) 总结 前言 如果你想利用VMWare安装虚拟机,或想创建一个与网内其他机器相隔离的虚拟系统,进行特 ...
- mysql ALTER COLUMN MODIFY COLUMN CHANGE COLUMN 区别及用法 (转)
-- 设置或删除列的默认值.该操作会直接修改.frm文件而不涉及表数据.此操作很快 -- ALTER COLUMN ALTER TABLE dsp_ad_center.XianDuan ALTER ...
- 深入理解HashMap
转自:http://annegu.iteye.com/blog/539465 Hashmap是一种非常常用的.应用广泛的数据类型,最近研究到相关的内容,就正好复习一下.网上关于hashmap的文章很多 ...
- nginx服务器应用中遇到的两个问题
1>首先是413的错误! client_max_body_size Context: http, server, location It is the maximum size of a cli ...
- mongodb不同版本之间有很大的差异
今天主要说下我为了给mongodb数据库添加authorization,大家应该知道,mongo默认是无auth运行的.这可能是方便小伙伴学习命令吧. 由于之前发布的一个项目,在亚马逊的云上,处于内部 ...
- java 输入输出项目
package hellohe; import java.util.Scanner; /** * * @author Administrator *1.导入java.util.scanner; *2. ...
- php ord和chr函数
直接上代码 //通过ord()函数获取字符的ASCII码值,如果返回值大于 127则表示为中文字符的一半,再获取后一半组合成一个完整字符 $string = "hello不要迷恋哥world ...