试图重新打开一个已关闭的对象:SQLiteDatabase [英] attempt to re-open an already-closed object: SQLiteDatabase

查看:301
本文介绍了试图重新打开一个已关闭的对象:SQLiteDatabase的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在我的logcat中,当我试图改变我的项目建设目标4.1谷歌的API,在项目属性这些错误。我试图修复项目属性和清洁工程,但没有成功。这是什么问题?

  10-07 15:13:34.839:E /跟踪(731):错误打开跟踪文件:没有这样的文件或目录(2)
10-07 15:13:35.259的:I / SQLiteConnectionPool(731):为/data/data/hr.punctum.LociranjePonudaProizvoda/databases/proizvodidb连接池已被关闭,但仍存在1连接使用。他们将被关闭,他们被释放回池中。
10-07 15:13:35.259:D / AndroidRuntime(731):关闭虚拟机
10-07 15:13:35.259:W / dalvikvm(731):主题ID = 1:螺纹退出与未捕获的异常(组= 0x40a13300)
10-07 15:13:35.278:E / AndroidRuntime(731):致命异常:主要
10-07 15:13:35.278:E / AndroidRuntime(731):java.lang.RuntimeException的:无法启动的活动ComponentInfo{hr.punctum.LociranjePonudaProizvoda/hr.punctum.LociranjePonudaProizvoda.ListaProizvoda}: java.lang.IllegalStateException:尝试重新打开一个已关闭的对象:SQLiteDatabase:/data/data/hr.punctum.LociranjePonudaProizvoda/databases/proizvodidb
10-07 15:13:35.278:E / AndroidRuntime(731):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
10-07 15:13:35.278:E / AndroidRuntime(731):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
10-07 15:13:35.278:E / AndroidRuntime(731):在android.app.ActivityThread.access $ 600(ActivityThread.java:130)
10-07 15:13:35.278:E / AndroidRuntime(731):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1195)
10-07 15:13:35.278:E / AndroidRuntime(731):在android.os.Handler.dispatchMessage(Handler.java:99)
10-07 15:13:35.278:E / AndroidRuntime(731):在android.os.Looper.loop(Looper.java:137)
10-07 15:13:35.278:E / AndroidRuntime(731):在android.app.ActivityThread.main(ActivityThread.java:4745)
10-07 15:13:35.278:E / AndroidRuntime(731):在java.lang.reflect.Method.invokeNative(本机方法)
10-07 15:13:35.278:E / AndroidRuntime(731):在java.lang.reflect.Method.invoke(Method.java:511)
10-07 15:13:35.278:E / AndroidRuntime(731):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:786)
10-07 15:13:35.278:E / AndroidRuntime(731):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-07 15:13:35.278:E / AndroidRuntime(731):在dalvik.system.NativeStart.main(本机方法)
10-07 15:13:35.278:E / AndroidRuntime(731):java.lang.IllegalStateException:产生的原因试图重新打开一个已关闭的对象:SQLiteDatabase:/data/data/hr.punctum.LociranjePonudaProizvoda/databases / proizvodidb
10-07 15:13:35.278:E / AndroidRuntime(731):在android.database.sqlite.SQLiteClosable.acquireReference(SQLiteClosable.java:55)
10-07 15:13:35.278:E / AndroidRuntime(731):在android.database.sqlite.SQLiteDatabase.endTransaction(SQLiteDatabase.java:520)
10-07 15:13:35.278:E / AndroidRuntime(731):在android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:263)
10-07 15:13:35.278:E / AndroidRuntime(731):在android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
10-07 15:13:35.278:E / AndroidRuntime(731):在hr.punctum.LociranjePonudaProizvoda.ListaProizvoda.onCreate(ListaProizvoda.java:27)
10-07 15:13:35.278:E / AndroidRuntime(731):在android.app.Activity.performCreate(Activity.java:5008)
10-07 15:13:35.278:E / AndroidRuntime(731):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
10-07 15:13:35.278:E / AndroidRuntime(731):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
10-07 15:13:35.278:E / AndroidRuntime(731):11 ...更多
 

解决方案

请确保您只是在与 SQLiteDatabase 的一个实例。我猜你已经实例化的多个实例和Android抱怨结果。

您应该看看这个<一href="http://www.androiddesignpatterns.com/2012/05/correctly-managing-your-sqlite-database.html">blog交 关于这个问题了。

I get these errors in my logcat when i tried to change my project build target to 4.1 google API, in Project Properties. I've tried to fix project properties and clean project, but with no success. What's the problem?

10-07 15:13:34.839: E/Trace(731): error opening trace file: No such file or directory (2)
10-07 15:13:35.259: I/SQLiteConnectionPool(731): The connection pool for /data/data/hr.punctum.LociranjePonudaProizvoda/databases/proizvodidb has been closed but there are still 1 connections in use.  They will be closed as they are released back to the pool.
10-07 15:13:35.259: D/AndroidRuntime(731): Shutting down VM
10-07 15:13:35.259: W/dalvikvm(731): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
10-07 15:13:35.278: E/AndroidRuntime(731): FATAL EXCEPTION: main
10-07 15:13:35.278: E/AndroidRuntime(731): java.lang.RuntimeException: Unable to start activity ComponentInfo{hr.punctum.LociranjePonudaProizvoda/hr.punctum.LociranjePonudaProizvoda.ListaProizvoda}: java.lang.IllegalStateException: attempt to re-open an already-closed object: SQLiteDatabase: /data/data/hr.punctum.LociranjePonudaProizvoda/databases/proizvodidb
10-07 15:13:35.278: E/AndroidRuntime(731):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
10-07 15:13:35.278: E/AndroidRuntime(731):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
10-07 15:13:35.278: E/AndroidRuntime(731):  at android.app.ActivityThread.access$600(ActivityThread.java:130)
10-07 15:13:35.278: E/AndroidRuntime(731):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
10-07 15:13:35.278: E/AndroidRuntime(731):  at android.os.Handler.dispatchMessage(Handler.java:99)
10-07 15:13:35.278: E/AndroidRuntime(731):  at android.os.Looper.loop(Looper.java:137)
10-07 15:13:35.278: E/AndroidRuntime(731):  at android.app.ActivityThread.main(ActivityThread.java:4745)
10-07 15:13:35.278: E/AndroidRuntime(731):  at java.lang.reflect.Method.invokeNative(Native Method)
10-07 15:13:35.278: E/AndroidRuntime(731):  at java.lang.reflect.Method.invoke(Method.java:511)
10-07 15:13:35.278: E/AndroidRuntime(731):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
10-07 15:13:35.278: E/AndroidRuntime(731):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-07 15:13:35.278: E/AndroidRuntime(731):  at dalvik.system.NativeStart.main(Native Method)
10-07 15:13:35.278: E/AndroidRuntime(731): Caused by: java.lang.IllegalStateException: attempt to re-open an already-closed object: SQLiteDatabase: /data/data/hr.punctum.LociranjePonudaProizvoda/databases/proizvodidb
10-07 15:13:35.278: E/AndroidRuntime(731):  at android.database.sqlite.SQLiteClosable.acquireReference(SQLiteClosable.java:55)
10-07 15:13:35.278: E/AndroidRuntime(731):  at android.database.sqlite.SQLiteDatabase.endTransaction(SQLiteDatabase.java:520)
10-07 15:13:35.278: E/AndroidRuntime(731):  at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:263)
10-07 15:13:35.278: E/AndroidRuntime(731):  at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
10-07 15:13:35.278: E/AndroidRuntime(731):  at hr.punctum.LociranjePonudaProizvoda.ListaProizvoda.onCreate(ListaProizvoda.java:27)
10-07 15:13:35.278: E/AndroidRuntime(731):  at android.app.Activity.performCreate(Activity.java:5008)
10-07 15:13:35.278: E/AndroidRuntime(731):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
10-07 15:13:35.278: E/AndroidRuntime(731):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
10-07 15:13:35.278: E/AndroidRuntime(731):  ... 11 more

解决方案

Make sure you are only ever working with one instance of SQLiteDatabase. I'm guessing that you have instantiated multiple instances and Android is complaining as a result.

You should take a look at this blog post on the subject too.

这篇关于试图重新打开一个已关闭的对象:SQLiteDatabase的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆