什么是" SQLiteDatabase创建,从未关闭"错误? [英] What is "SQLiteDatabase created and never closed" error?

查看:268
本文介绍了什么是" SQLiteDatabase创建,从未关闭"错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在适配器类关闭数据库,所以whay是logcat的这个错误showingup但我的应用程序没有关闭forcr但只有错误显示在日志cat..where我shuold不得不关闭数据库忽略这个错误...?

我的错误是... below..in哪个类我离开关闭数据库.....我把帮助从这个链接的 http://www.vogella.de/articles/AndroidSQLite/article.html

  ERROR /数据库(265):发现泄漏
      ERROR /数据库(265):java.lang.IllegalStateException:创建/data/data/expenceanywhere.mobile/databases/data SQLiteDatabase永不关闭
      ERROR /数据库(265):在android.database.sqlite.SQLiteDatabase<&初始化GT;(SQLiteDatabase.java:1581)。
      ERROR /数据库(265):在android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:638)
      ERROR /数据库(265):在android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:659)
      ERROR /数据库(265):在android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:652)
      ERROR /数据库(265):在android.app.ApplicationContext.openOrCreateDatabase(ApplicationContext.java:482)
       ERROR /数据库(265):在android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:193)
       ERROR /数据库(265):在android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:98)
        ERROR /数据库(265):在expenceanywhere.mobile.NotesDbAdapter.open(NotesDbAdapter.java:56)
        ERROR /数据库(265):在expenceanywhere.mobile.AddEditExpense.onCreate(AddEditExpense.java:199)
        ERROR /数据库(265):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
        ERROR /数据库(265):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
       ERROR /数据库(265):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
       ERROR /数据库(265):在android.app.ActivityThread.access $ 2100(ActivityThread.java:116)
         ERROR /数据库(265):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1794)
         ERROR /数据库(265):在android.os.Handler.dispatchMessage(Handler.java:99)
         ERROR /数据库(265):在android.os.Looper.loop(Looper.java:123)
         ERROR /数据库(265):在android.app.ActivityThread.main(ActivityThread.java:4203)
       ERROR /数据库(265):在java.lang.reflect.Method.invokeNative(本机方法)
       ERROR /数据库(265):在java.lang.reflect.Method.invoke(Method.java:521)
       ERROR /数据库(265):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:791)
         ERROR /数据库(265):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
          ERROR /数据库(265):在dalvik.system.NativeStart.main(本机方法)


解决方案

记住要在Helper类始终贴近分贝

  // ---关闭数据库---
公共无效的close()
{
    DBHelper.close();
}

在类似的问题:<一href=\"http://stackoverflow.com/questions/2280345/sqlite-database-leak-found-exception-in-android\">Sqlite数据库泄漏的Andr​​oid FOUND例外?

I have closed the database in my adapter class, so whay is this error showingup on logcat but my application is not forcr closing but only error is showing on log cat..where i shuold have to close the database for ignoring this error...?

my errors are...below..in which class i left for closing the database.....i took help from this link http://www.vogella.de/articles/AndroidSQLite/article.html

ERROR/Database(265): Leak found
      ERROR/Database(265): java.lang.IllegalStateException: /data/data/expenceanywhere.mobile/databases/data SQLiteDatabase created and never closed
      ERROR/Database(265):     at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1581)
      ERROR/Database(265):     at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:638)
      ERROR/Database(265):     at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:659)
      ERROR/Database(265):     at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:652)
      ERROR/Database(265):     at android.app.ApplicationContext.openOrCreateDatabase(ApplicationContext.java:482)
       ERROR/Database(265):     at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:193)
       ERROR/Database(265):     at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:98)
        ERROR/Database(265):     at expenceanywhere.mobile.NotesDbAdapter.open(NotesDbAdapter.java:56)
        ERROR/Database(265):     at expenceanywhere.mobile.AddEditExpense.onCreate(AddEditExpense.java:199)
        ERROR/Database(265):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
        ERROR/Database(265):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
       ERROR/Database(265):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
       ERROR/Database(265):     at android.app.ActivityThread.access$2100(ActivityThread.java:116)
         ERROR/Database(265):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
         ERROR/Database(265):     at android.os.Handler.dispatchMessage(Handler.java:99)
         ERROR/Database(265):     at android.os.Looper.loop(Looper.java:123)
         ERROR/Database(265):     at android.app.ActivityThread.main(ActivityThread.java:4203)
       ERROR/Database(265):     at java.lang.reflect.Method.invokeNative(Native Method)
       ERROR/Database(265):     at java.lang.reflect.Method.invoke(Method.java:521)
       ERROR/Database(265):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
         ERROR/Database(265):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
          ERROR/Database(265):     at dalvik.system.NativeStart.main(Native Method)

解决方案

Remember to always close db in Helper class

//---closes the database---    
public void close() 
{
    DBHelper.close();
}

The similar question: Sqlite Database LEAK FOUND exception in android?

这篇关于什么是&QUOT; SQLiteDatabase创建,从未关闭&QUOT;错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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