приложение остановлено в Android / SQLITE ERROR / - PullRequest
5 голосов
/ 30 марта 2012

Вчера приложение работало нормально, и я не редактировал свои коды. Но сейчас это не работает. logcat -

close() was never explicitly called on database '/data/data/[myproject]/databases/MyDB' 
android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1943)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1007)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:986)
at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:1051)
at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:770)
at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:221)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:157)
at mn.emondo.parliament.DBAdapter.open(DBAdapter.java:46)
at mn.emondo.parliament.ProfileActivity.onCreate(ProfileActivity.java:46)
at android.app.Activity.performCreate(Activity.java:4465)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
at android.app.ActivityThread.access$600(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)

Ответы [ 5 ]

2 голосов
/ 30 марта 2012

После того, как вы откроете базу данных и курсор, вы должны закрыть их перед выходом из класса или занятия.db.close ();cr.close ();

пожалуйста, используйте это.

1 голос
/ 30 марта 2012

Попробуйте этот метод, когда закончите выборку данных из базы данных.
Когда вы открываете базу данных, вам нужно вызвать db.open (), а когда вы закончите работу с базой данных, вам нужно вызвать метод close (). используйте следующий метод.

db.close();

и вы должны позвонить, чтобы открыть базу данных из вашей Activity.java

1 голос
/ 30 марта 2012

Вы забыли close() вашу базу данных; при следующем открытии вы получите исключение DatabaseObjectNotClosedException.

1 голос
/ 30 марта 2012

Если раньше он работал, а не сейчас ,, попробуйте изменить название версии базы данных ,,,

даже после того, как это не сработает, измените имя версии и имя базы данных.

1 голос
/ 30 марта 2012

Вы не закрыли курсор.Это написано в вашей ОШИБКЕ.

Application did not close the cursor or database object that was opened here

Так как я не вижу ваш код, просто проверьте, что вы не закрыли свой курсор.

Или попробуйте очистить свой проект иПерестройте его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...