Fatal signal 11 (SIGSEGV) at 0x000007c4 (code=1)

news/2024/11/20 9:21:36/

原代码是:

		HashMap<String, Object> listItemMap = new HashMap<String, Object>();listItemMap.put("ItemImage", R.drawable.image1);listItemMap.put("ItemText", "introduction");this.listItem.add(listItemMap);listItemMap = new HashMap<String, Object>();listItemMap.put("ItemImage", R.drawable.image2);listItemMap.put("ItemText", "weather");this.listItem.add(listItemMap);listItemMap = new HashMap<String, Object>();listItemMap.put("ItemImage", R.drawable.image3);listItemMap.put("ItemText", "gallery");this.listItem.add(listItemMap);listItemMap = new HashMap<String, Object>();listItemMap.put("ItemImage", R.drawable.forward);listItemMap.put("ItemText", "testing");this.listItem.add(listItemMap);this.listView.setAdapter(this.listItemAdapter);

原来意图是在listview的每个item都添加一个imageview,我这里定义的listview只有4个item,但是没有注意到memory的问题,直接从drawable load进来

直接提示:
E/dalvikvm-heap(18508): Out of memory on a 2469776-byte allocation.
其中image1,2,3,4都是1024 * 768 占用内存比较大的图片。每张图片接近1M。

阅读了android的documents:

http://developer.android.com/training/displaying-bitmaps/index.html

里面有提到一些方法,但是因为屏幕上可以显示好多个listview的item,导致可以间接或者直接使用的接口:

decodeByteArray()decodeFile()decodeResource()或者recyle机制等对我这种情况都没用

或许只有我那么奇葩,用那么高分辨率的图片做item的图标,最终决定开大招:

用ps把图片分辨率改了,内存占用自然也少,每张图片只有几k。

或许你有其他好办法?欢迎指正!

 

注:引起:Fatal signal 11 (SIGSEGV) at 0x000007c4 (code=1) exception,OOM不是唯一原因。

这里讨论的是OOM。另外可以使用

Runtime rt = Runtime.getRuntime();
long maxMemory = rt.maxMemory();
Log.v("onCreate", "maxMemory:" + Long.toString(maxMemory));

ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
int memoryClass = am.getMemoryClass();
Log.v("onCreate", "memoryClass:" + Integer.toString(memoryClass));

来查看设备的application heap max value。详细请看:

http://stackoverflow.com/questions/2630158/detect-application-heap-size-in-android/9428660#9428660


http://www.ppmy.cn/news/491260.html

相关文章

First-chance exception at 0x000007FE86D99B3C in XXXX.exe: 0xC0000005: Access violation reading locat

First-chance exception at 0x000007FE86D99B3C in XXXX.exe: 0xC0000005: Access violation reading location 0x0000000000000000. 解决方法&#xff1a; https://social.msdn.microsoft.com/Forums/vstudio/en-US/da1eedcd-50d3-46b0-bfd8-f3c840d72b55/how-do-you-find-a…

联想本装系统stop:0X000007B错误[转]

联想本装系统stop:0X000007B错误 已有 917 次阅读 2011-3-7 21:04 |系统分类:科普集锦|关键词:thinkpad 联想 stop 错误 新买了thinkpad的本本&#xff0c;用光驱装xp时却出现了蓝屏&#xff0c;并提示&#xff1a; A problem has been detected and windows has been shut dow…

USB热插拔一直返回0x0007

本人在做USB热插拔功能时&#xff0c;发现使用以往监测USB热插拔U盘代码时&#xff0c;发现msg->wParam的值一直是0x0007&#xff0c;包括插拔键盘、鼠标都是返回这个值&#xff0c;后查询资料后可通过对所需监测设备进行事先注册再调用原先的函数进行监测即可实现该功能。具…

the application was unable to start correctly(0x000007b)解决方案

遇到程序崩溃的一般解决步奏 1、调试程序&#xff0c;定位到崩溃到码处。如果是系统代码处的问题&#xff0c;可以复制改行代码在百度上搜搜看&#xff1b;如果是你自己写的代码&#xff0c;那么我想改起来就更简单了。 2、一般我们所遇到的程序崩溃问题网上一定是找得到的&a…

解决the application was unable to start correctly(0x000007b)与 缺少VCRUNTIME140.dll

问题描述 今天出现了C程序在本地VS上面运行正常&#xff0c;生成的exe文件在本地使用命令行调用也正常&#xff0c;但是放到服务器使用命令行调用上就出现“the application was unable to start correctly(0x000007b)”的问题&#xff0c;如图&#xff1a; 解决过程&#x…

用VS运行程序错误,提示0x000007b

原文链接&#xff1a;https://www.fearlazy.com/index.php/post/308.html 现象&#xff1a; Qt程序使用QtCreator运行没有问题。 想要调试程序&#xff0c;于是换成VS运行程序&#xff0c; 结果程序无法启动并提示0x000007b。 原因&#xff1a; QtCreator可以运行VS不行&…

开放信任以致技术常青,Intel 全面加码开源技术生态

出品 | CSDN 云计算 提到英特尔&#xff0c;我们都知道它有一系列处理器和硬件产品&#xff0c;以及对于 Linux 内核 kernel 的核心贡献&#xff0c;是当之无愧的核心硬件技术厂商。不过硬件厂商对于软件体系的一系列贡献&#xff0c;其实是 IT 硬件与软件需要调优、协同发展的…

进程的引入(操作系统)

目录 1、进程的概念 2、进程状态及状态转换 &#xff08;1&#xff09;进程的状态 &#xff08;2&#xff09;状态的转换 3、进程控制块&#xff08;PCB&#xff09; 4、进程的组成和上下文 5、进程的队列 6、进程的类型和特征 7、进程间相互联系与相互作用 8、进程的…