天天看點

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介紹

如果哪位大神有更好的方法,歡迎指點一二!