tags:

views:

316

answers:

1
04-20 16:53:39.010: ERROR/Database(419): Leak found
04-20 16:53:39.010: ERROR/Database(419): java.lang.IllegalStateException: mPrograms size 1
04-20 16:53:39.010: ERROR/Database(419):     at android.database.sqlite.SQLiteDatabase.finalize(SQLiteDatabase.java:1668)
04-20 16:53:39.010: ERROR/Database(419):     at dalvik.system.NativeStart.run(Native Method)
04-20 16:53:39.010: ERROR/Database(419): Caused by: java.lang.IllegalStateException: /data/data/com.example.search/databases/rlite.db SQLiteDatabase created and never closed
04-20 16:53:39.010: ERROR/Database(419):     at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1694)
04-20 16:53:39.010: ERROR/Database(419):     at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:738)
04-20 16:53:39.010: ERROR/Database(419):     at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:760)
04-20 16:53:39.010: ERROR/Database(419):     at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:753)
04-20 16:53:39.010: ERROR/Database(419):     at android.app.ApplicationContext.openOrCreateDatabase(ApplicationContext.java:473)
04-20 16:53:39.010: ERROR/Database(419):     at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:193)
04-20 16:53:39.010: ERROR/Database(419):     at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:98)
04-20 16:53:39.010: ERROR/Database(419):     at com.example.search.Database.<init>(Database.java:33)
04-20 16:53:39.010: ERROR/Database(419):     at com.example.search.JobDetails.applyJob(JobDetails.java:120)
04-20 16:53:39.010: ERROR/Database(419):     at com.example.search.JobDetails.jobdetailsAction(JobDetails.java:98)
04-20 16:53:39.010: ERROR/Database(419):     at java.lang.reflect.Method.invokeNative(Native Method)
04-20 16:53:39.010: ERROR/Database(419):     at java.lang.reflect.Method.invoke(Method.java:521)
04-20 16:53:39.010: ERROR/Database(419):     at android.view.View$1.onClick(View.java:2026)
04-20 16:53:39.010: ERROR/Database(419):     at android.view.View.performClick(View.java:2364)
04-20 16:53:39.010: ERROR/Database(419):     at android.view.View.onTouchEvent(View.java:4179)
04-20 16:53:39.010: ERROR/Database(419):     at android.widget.TextView.onTouchEvent(TextView.java:6540)
04-20 16:53:39.010: ERROR/Database(419):     at android.view.View.dispatchTouchEvent(View.java:3709)
04-20 16:53:39.010: ERROR/Database(419):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
04-20 16:53:39.010: ERROR/Database(419):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
04-20 16:53:39.010: ERROR/Database(419):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
04-20 16:53:39.010: ERROR/Database(419):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
04-20 16:53:39.010: ERROR/Database(419):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
04-20 16:53:39.010: ERROR/Database(419):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
04-20 16:53:39.010: ERROR/Database(419):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
04-20 16:53:39.010: ERROR/Database(419):     at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
04-20 16:53:39.010: ERROR/Database(419):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
04-20 16:53:39.010: ERROR/Database(419):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
04-20 16:53:39.010: ERROR/Database(419):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-20 16:53:39.010: ERROR/Database(419):     at android.os.Looper.loop(Looper.java:123)
04-20 16:53:39.010: ERROR/Database(419):     at android.app.ActivityThread.main(ActivityThread.java:4363)
04-20 16:53:39.010: ERROR/Database(419):     at java.lang.reflect.Method.invokeNative(Native Method)
04-20 16:53:39.010: ERROR/Database(419):     at java.lang.reflect.Method.invoke(Method.java:521)
04-20 16:53:39.010: ERROR/Database(419):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
04-20 16:53:39.010: ERROR/Database(419):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
04-20 16:53:39.010: ERROR/Database(419):     at dalvik.system.NativeStart.main(Native Method)

when i read the database show error like this. please do reply me

+2  A: 

The important line is...

... Caused by: java.lang.IllegalStateException: /data/data/com.example.search/databases/rlite.db SQLiteDatabase created and never closed

Chances are you are allowing your activity to be stopped/exited before you are closing the database. (This can happen if you are not implementing all the (onXXX() methods) in the lifecycle. They can be triggered unexpectedly eg if you rotate the device.

Either write your db access routines as

db.open()
db.dosomething()
db.close()

or make sure you close the database when you get an onSuspend() (I think.. possibly one of the others) and re-open it when you are started again.

Hope this helps

Peter

Vagnerr
k thanks vagnerr. private static class OpenHelper extends SQLiteOpenHelper { OpenHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION);}public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE " + TABLE_NAME + "(id INTEGER PRIMARY KEY, name TEXT, " +contact TEXT")"); }public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);onCreate(db);} public synchronized void close() {super.close(); }}where i did the mistake
saravanan