Ресурс был получен при подключенной трассировке стека, но не был выпущен. См. Java.io.Closeable для информации об избежании утечек ресурсов

Я получаю это сообщение в logcat . Ресурс был получен при подключенной трассировке стека, но не был выпущен. См. Java.io.Closeable для получения информации об избежании утечки ресурсов. где искать утечку и что это означает «См. java.io.Closeable»

    Это означает, что вы что-то открыли, но никогда не закрывали их. Closable имеет метод close который вы должны вызывать для освобождения ресурсов, связанных с компонентом, когда он вам больше не нужен.

    Чтобы искать утечку, вы можете попробовать MAT , я часто использую ее для поиска утечек памяти (статические данные, содержащие ссылку на Activity и т. Д.).

    Для меня проблема возникла из-за того, что я onBackPressed() метод onBackPressed() без вызова super()

     @Override public void onBackPressed() { //some coding here super.onBackPressed(); } 

    если вы видите что-то вроде:

     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.(Inflater.java:82) 10-12 16:46:44.719 2710-2719/? E/StrictMode: at com.android.okio.GzipSource.(GzipSource.java:57) 10-12 16:46:44.719 2710-2719/? E/StrictMode: at com.android.okhttp.internal.http.HttpEngine.initContentStream(HttpEngine.java:490) 

    в вашей stacktrace есть известная ошибка в более старых версиях okhttp, которую вы можете избежать, заставив использовать более новую версию в вашем файле gradle.

    compile ‘com.squareup.okhttp3: okhttp: 3.2.0’

    которые решили для меня очень похожую проблему.

    Такое же сообщение об ошибке также появляется при возникновении проблемы в AndroidManifest.xml . Для меня случайно вышел из

    Это верно:

      ...   

    Это приведет к тому, что «Ресурс был получен при подключенной трассировке стека, но никогда не был выпущен» при запуске операции:

      ...   

    Это случилось со мной при запуске второго действия из другого действия, когда я не объявил вторую активность в Application.mk.

    Моя ошибка была вызвана включением строгого режима. Когда я делал перераспределения на тестовом телефоне с помощью adb, некоторые ресурсы были закрыты неправильно.

    Я «исправил» ошибку, удалив deathPenalty из строгой версии:

      StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() .detectAll() .penaltyLog() // .penaltyDeath() .build()); 
    Interesting Posts
    Давайте будем гением компьютера.