[英]Resolving java.lang.Throwable exception in an android
我正在使用具有sqlite數據庫的android應用程序。 在我的應用程序中編寫了與數據庫操作相關的代碼后,我遇到了以下異常。 雖然我的應用程序不會停止/崩潰,但是我想知道如何解決此異常。 我不確定為什么會發生此異常,但是我想它與sqlite操作有關。 我已按照建議關閉了所有流,連接和游標。 下面是堆棧跟蹤:
689-698/? E/StrictMode﹕ 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
at dalvik.system.CloseGuard.open(CloseGuard.java:184)
at android.os.ParcelFileDescriptor.<init>(ParcelFileDescriptor.java:180)
at android.os.ParcelFileDescriptor$1.createFromParcel(ParcelFileDescriptor.java:916)
at android.os.ParcelFileDescriptor$1.createFromParcel(ParcelFileDescriptor.java:906)
at android.app.IBackupAgent$Stub.onTransact(IBackupAgent.java:57)
at android.os.Binder.execTransact(Binder.java:446)
04-24 08:49:21.127 689-698/? E/StrictMode﹕ 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
at dalvik.system.CloseGuard.open(CloseGuard.java:184)
at android.os.ParcelFileDescriptor.<init>(ParcelFileDescriptor.java:180)
at android.os.ParcelFileDescriptor$1.createFromParcel(ParcelFileDescriptor.java:916)
at android.os.ParcelFileDescriptor$1.createFromParcel(ParcelFileDescriptor.java:906)
at android.app.IBackupAgent$Stub.onTransact(IBackupAgent.java:64)
at android.os.Binder.execTransact(Binder.java:446)
04-24 08:49:21.129 689-698/? E/StrictMode﹕ 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
at dalvik.system.CloseGuard.open(CloseGuard.java:184)
at android.os.ParcelFileDescriptor.<init>(ParcelFileDescriptor.java:180)
at android.os.ParcelFileDescriptor$1.createFromParcel(ParcelFileDescriptor.java:916)
at android.os.ParcelFileDescriptor$1.createFromParcel(ParcelFileDescriptor.java:906)
at android.app.IBackupAgent$Stub.onTransact(IBackupAgent.java:71)
at android.os.Binder.execTransact(Binder.java:446)
誰能解釋這個異常何時發生以及如何解決?
就像日志說:
在附加的堆棧跟蹤中獲取了資源,但從未釋放過。 有關避免資源泄漏的信息,請參見java.io.Closeable。
顯式終止方法“關閉”未調用
注意,調用堆棧顯示了資源的創建位置 。 當資源被垃圾回收並且它沒有被關閉時,將顯示該消息。
在您的情況下,我們可以看到該資源是一個ParcelFileDescriptor
,它是由IBackupAgent$Stub.onTransact()
方法自動創建的(即,當您的BackupAgent通過活頁夾獲得調用時)。
如果您確保關閉傳遞給BackupAgent子類的ParcelFileDescriptors,則日志應消失。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.