簡體   English   中英

解決Android中的java.lang.Throwable異常

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM