在android中解析java.lang.Throwable异常

在android中解析java.lang.Throwable异常,java,android,sqlite,Java,Android,Sqlite,我正在开发一个android应用程序,它有一个sqlite数据库。在我的应用程序中编写了与数据库操作相关的代码之后,我得到了以下异常。虽然我的应用程序没有停止/崩溃,但我想知道如何解决此异常。我不确定为什么会发生这种异常,但我认为它与sqlite操作有关。我已按建议关闭所有流、连接和游标。下面是堆栈跟踪: 689-698/? E/StrictMode﹕ A resource was acquired at attached stack trace but never released. See

我正在开发一个android应用程序,它有一个sqlite数据库。在我的应用程序中编写了与数据库操作相关的代码之后,我得到了以下异常。虽然我的应用程序没有停止/崩溃,但我想知道如何解决此异常。我不确定为什么会发生这种异常,但我认为它与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)
689-698/?E/S模式﹕ 已在附加的堆栈跟踪中获取资源,但从未释放。有关避免资源泄漏的信息,请参阅java.io.Closeable。
java.lang.Throwable:未调用显式终止方法“close”
位于dalvik.system.CloseGuard.open(CloseGuard.java:184)
在android.os.ParcelFileDescriptor上。(ParcelFileDescriptor.java:180)
位于android.os.ParcelFileDescriptor$1.createFromParcel(ParcelFileDescriptor.java:916)
位于android.os.ParcelFileDescriptor$1.createFromParcel(ParcelFileDescriptor.java:906)
位于android.app.IBackupAgent$Stub.onTransact(IBackupAgent.java:57)
位于android.os.Binder.execTransact(Binder.java:446)
04-24 08:49:21.127      689-698/? E/S模式﹕ 已在附加的堆栈跟踪中获取资源,但从未释放。有关避免资源泄漏的信息,请参阅java.io.Closeable。
java.lang.Throwable:未调用显式终止方法“close”
位于dalvik.system.CloseGuard.open(CloseGuard.java:184)
在android.os.ParcelFileDescriptor上。(ParcelFileDescriptor.java:180)
位于android.os.ParcelFileDescriptor$1.createFromParcel(ParcelFileDescriptor.java:916)
位于android.os.ParcelFileDescriptor$1.createFromParcel(ParcelFileDescriptor.java:906)
位于android.app.IBackupAgent$Stub.onTransact(IBackupAgent.java:64)
位于android.os.Binder.execTransact(Binder.java:446)
04-24 08:49:21.129      689-698/? E/S模式﹕ 已在附加的堆栈跟踪中获取资源,但从未释放。有关避免资源泄漏的信息,请参阅java.io.Closeable。
java.lang.Throwable:未调用显式终止方法“close”
位于dalvik.system.CloseGuard.open(CloseGuard.java:184)
在android.os.ParcelFileDescriptor上。(ParcelFileDescriptor.java:180)
位于android.os.ParcelFileDescriptor$1.createFromParcel(ParcelFileDescriptor.java:916)
位于android.os.ParcelFileDescriptor$1.createFromParcel(ParcelFileDescriptor.java:906)
位于android.app.IBackupAgent$Stub.onTransact(IBackupAgent.java:71)
位于android.os.Binder.execTransact(Binder.java:446)
有人能解释一下这个异常是什么时候发生的以及如何解决吗?

就像日志上说的:

已在附加的堆栈跟踪中获取资源,但从未释放。有关避免资源泄漏的信息,请参阅java.io.Closeable

未调用显式终止方法“close”

请注意,调用堆栈显示了资源的创建位置。当资源被垃圾回收并且它注意到它没有被关闭时,消息被打印出来

在您的例子中,我们可以看到资源是一个
ParcelFileDescriptor
,它是由
IBackupAgent$Stub.onTransact()
方法自动创建的(即,当您的备份代理通过绑定器获得调用时)


如果确保关闭传递给BackupAgent子类的ParcelFileDescriptor,日志将消失。

能否共享源代码?是否使用谷歌地图api@koutuk我没有使用谷歌地图API。我只是在读sqliteDB并向其写入内容。