java.lang.Throwable: Explicit termination method 'close' not called

今天调试Android项目,发布新商品,读取图片File时报了Exception,但程序却没有影响,继续运行:

A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks.
java.lang.Throwable: Explicit termination method 'close' not called

我查了一下这个错误,结合自己的项目分析:
1. IO文件流没有关闭,造成内存泄露
2. 开启StrictMode模式
3. 数据库查询的Customer没有关闭

我在项目中慢慢查询了 1和3 问题,并做了一些优化后发现还是报这个错误,最后把 StrictMode模式关闭了,就没有在报这个错误了,所以确定是因为开始了 StrictMode模式导致APP的检查比较严苛,报了这个错误。目前的处理的方法是暂时不理,继续开始StrictMode模式,以便开发调试中尽可能的优化APP。

PS: 我后面发现很多第三方SDK,比如趣拍SDK的IO流处理的时候也报同样的错误,说明这些SDK也暂时对这个错误没有处理。

Android最佳实践之:StrictMode介绍
如果哪位大神有更好的方法,欢迎指点一二!


版权声明:本文为caiwenfeng_for_23原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。