在android中解析java.lang.Throwable异常
我正在开发一个android应用程序,它有一个sqlite数据库。在我的应用程序中编写了与数据库操作相关的代码之后,我得到了以下异常。虽然我的应用程序没有停止/崩溃,但我想知道如何解决此异常。我不确定为什么会发生这种异常,但我认为它与sqlite操作有关。我已按建议关闭所有流、连接和游标。下面是堆栈跟踪:在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
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并向其写入内容。