我正在使用具有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.createFromParcel(ParcelfileDescriptor.java:916) at androID.os.ParcelfileDescriptor.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.createFromParcel(ParcelfileDescriptor.java:916) at androID.os.ParcelfileDescriptor.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.createFromParcel(ParcelfileDescriptor.java:916) at androID.os.ParcelfileDescriptor.createFromParcel(ParcelfileDescriptor.java:906) at androID.app.IBackupAgent$Stub.onTransact(IBackupAgent.java:71) at androID.os.Binder.execTransact(Binder.java:446)
谁能解释这个异常何时发生以及如何解决?
解决方法:
就像日志说:
A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoIDing resource leaks.
Explicit termination method ‘close’ not called
请注意,调用堆栈显示了创建资源的位置.当资源被垃圾回收并且它没有被关闭时,将显示该消息.
在您的情况下,我们可以看到该资源是一个ParcelfileDescriptor,它是由IBackupAgent $Stub.onTransact()方法自动创建的(即,当您的BackupAgent通过活页夹获得调用时).
如果您确保关闭传递给BackupAgent子类的ParcelfileDescriptors,则日志应消失.
总结以上是内存溢出为你收集整理的解决Android中的java.lang.Throwable异常全部内容,希望文章能够帮你解决解决Android中的java.lang.Throwable异常所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)