首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在附加的堆栈跟踪中获取资源,但从未释放。有关避免资源泄漏的信息,请参阅java.io.Closeable。

在附加的堆栈跟踪中获取资源,但从未释放。有关避免资源泄漏的信息,请参阅java.io.Closeable。
EN

Stack Overflow用户
提问于 2014-08-28 08:18:16
回答 7查看 45.8K关注 0票数 38

我在logcat 中获得了这条消息--一个资源是在附加的堆栈跟踪中获得的,但从未释放过。有关避免资源泄漏的信息,请参见java.io.Closeable。在哪里查找泄漏以及它的意思是“请参阅java.io.Closeable”。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-08-28 08:26:04

这意味着您已经打开了一些东西,但从未关闭它们。Closable有一个方法close,当您不再需要它时,您必须调用它来释放与组件相关的资源。

要查找漏洞,可以尝试MAT,我经常使用它查找内存泄漏(保存活动引用的静态数据,等等)。

票数 14
EN

Stack Overflow用户

发布于 2015-06-26 08:24:37

对我来说,问题的发生是因为我没有调用onBackPressed()而重写了方法super()

代码语言:javascript
运行
复制
@Override
public void onBackPressed() {
    //some coding here
    super.onBackPressed();
}
票数 8
EN

Stack Overflow用户

发布于 2016-05-02 09:45:09

如果你看到这样的事情:

代码语言:javascript
运行
复制
10-12 16:46:44.719 2710-2719/? E/StrictMode: A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks.
10-12 16:46:44.719 2710-2719/? E/StrictMode: java.lang.Throwable: Explicit termination method 'end' not called
10-12 16:46:44.719 2710-2719/? E/StrictMode:     at dalvik.system.CloseGuard.open(CloseGuard.java:184)
10-12 16:46:44.719 2710-2719/? E/StrictMode:     at java.util.zip.Inflater.<init>(Inflater.java:82)
10-12 16:46:44.719 2710-2719/? E/StrictMode:     at com.android.okio.GzipSource.<init>(GzipSource.java:57)
10-12 16:46:44.719 2710-2719/? E/StrictMode:     at com.android.okhttp.internal.http.HttpEngine.initContentStream(HttpEngine.java:490)

在堆栈跟踪中,在较早版本的okhttp中有一个已知的bug,您可以通过强制在gradle文件中使用较新的版本来避免这种错误。

编译‘com.square up.okhttp 3:okhttp:3.2.0’

这至少为我解决了一个非常相似的问题。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25544021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档