关于Andrdoid编程中出现BufferQueue的“queueBuffer: fence is NULL”的一种解决方案
来源:互联网 发布:淘宝男装冬装 编辑:程序博客网 时间:2024/06/06 11:31
1 问题描述
今天编程的时候又遇到一个错误 我进行的是Android程序实现
使用的编译工具是Eclipse LogCat的调试信息如下图
可以看到最后导致的结果就是显示 无法读取文件“No file...”
实际上我后来通过DDMS查看文件目录 文件的确是存在的
也不存在Android项目权限的问题 因为之前已经读取了许多文件数据
可以看到“4750 HRIR” 就是我显示的文件读取数量的提示信息
那么为什么会出现这样的问题呢
2 解决过程
因为我已经写过C++的代码
C++代码里面有一个很重要的要点就是:需要对文件流的资源进行严格合理的管控
如果有一个文件流没有管理好 就可能会出现许多灵异的错误
这感觉令人情不自禁
所以我猜想这里也有可能出现类似的问题 因为前面我读取了很多文件信息
可以看到“4750 HRIR” 也就是已经读取了4750个文件信息
所以我想到可能是没有关闭文件流的原因 也就是没有调用close()
果然我加上了close()的代码就没有问题了 一切变得正常了
所以一定要记得关闭文件流
3 测试
加上close()语句后 一切变得正常了
4 后记
这真的是一个十分重要的教训
原本以为由于Java优秀的垃圾回收机制 就可以随意的使用资源而不管不顾
后来发现 这样的编程思想的确是不符合实际工程的需要的
在这里 一个具体的经验就是:
需要严格合理地管控文件流资源 注意在合适的时间点对文件流进行资源的释放
也就是close() 确保资源的开销合理化 这样的观点对于Java和C++同样适用
0 0
- 关于Andrdoid编程中出现BufferQueue的“queueBuffer: fence is NULL”的一种解决方案
- 关于ognl.OgnlException: target is null for setProperty(null的解决方案
- struts2 关于ognl.OgnlException: target is null for setProperty(null的解决方案 .
- 14-关于ognl.OgnlException: target is null for setProperty(null的解决方案)
- 关于RHCS中fence设备的讨论
- Andrdoid中实现静态的默认安装和卸载应用
- Andrdoid中实现静态的默认安装和卸载应用Andrdoid中实现静态的默认安装和卸载应用
- struts2 <s:submit>国际化时提示警告关于ognl.OgnlException: target is null for setProperty(null的解决方案
- 关于出现VirtualAlloc pointer is null导致git崩溃的解决办法
- 关于引用iframe下的页面时出现TypeError: G.getComputedStyle(...) is null错误
- 关于出现VirtualAlloc pointer is null导致git崩溃的解决办法
- 关于eclipse运行时出现“无法找到或加载主类”的一种情况的解决方案
- Ibatis 关于空值(NULL)的解决方案
- Ibatis 关于空值(NULL)的解决方案
- 关于VC编程中出现的APPCRASH
- android关于轮询的一种解决方案
- 关于threadLocal的使用中出现NullPointException的解决方案
- SSH框架中Struts注入Service对象总是出现null的解决方案
- java学习笔记2
- iOS获取屏幕亮度和调整屏幕亮度的方法
- Java面试题之精选最常见的面试真题 上
- iOS开发 ☞ Commen Sense
- block没那么难(二):block和变量的内存管理
- 关于Andrdoid编程中出现BufferQueue的“queueBuffer: fence is NULL”的一种解决方案
- Android Scrollview 内部组件android:layout_height="match_parent"无效的解决办法
- 批量删除.SVN文件
- nginx重启
- HTTP协议
- 手机页面自适应
- IT从业者学习规划
- setsockopt参数详细说明
- HDU - 5666 Segment (大数位运算)好题