我在logcat 中获得了这条消息--一个资源是在附加的堆栈跟踪中获得的,但从未释放过。有关避免资源泄漏的信息,请参见java.io.Closeable。在哪里查找泄漏以及它的意思是“请参阅java.io.Closeable”。
发布于 2014-08-28 08:26:04
这意味着您已经打开了一些东西,但从未关闭它们。Closable有一个方法close,当您不再需要它时,您必须调用它来释放与组件相关的资源。
要查找漏洞,可以尝试MAT,我经常使用它查找内存泄漏(保存活动引用的静态数据,等等)。
发布于 2015-06-26 08:24:37
对我来说,问题的发生是因为我没有调用onBackPressed()而重写了方法super()
@Override
public void onBackPressed() {
//some coding here
super.onBackPressed();
}发布于 2016-05-02 09:45:09
如果你看到这样的事情:
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’
这至少为我解决了一个非常相似的问题。
https://stackoverflow.com/questions/25544021
复制相似问题