解决Android中的java.lang.Throwable异常

解决Android中的java.lang.Throwable异常,第1张

概述我正在使用具有sqlite数据库的android应用程序.在我的应用程序中编写了与数据库 *** 作相关的代码后,我遇到了以下异常.虽然我的应用程序不会停止/崩溃,但是我想知道如何解决此异常.我不确定为什么会发生此异常,但是我想它与sqlite *** 作有关.我已按照建议关闭了所有流,连接和游标.下面

我正在使用具有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异常所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1093422.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存