8 / 8 / 4
Регистрация: 11.03.2015
Сообщений: 212
|
||||||||||||||||
1 | ||||||||||||||||
"Attempt to re-open an already-closed object" при работе с SQLite09.04.2015, 18:03. Показов 8409. Ответов 41
Метки нет (Все метки)
Добрый день. Разрабатываю приложение и столкнулся с проблемой... Лог выдаёт вот такое:
FATAL EXCEPTION: main java.lang.IllegalStateException: attempt to re-open an already-closed object: SQLiteDatabase: Понапихал Log.v всюду, чтобы разобраться, но ни как, мой уровень не позволяет. Ясное дело гуглил, но либо я дурак, либо лыжи... Так что взываю о помощи к вам. В заранее спасибо. Та самая проблемная активити. EventActivity.java
Класс с базой данных. BD.java
И сам лог
0
|
09.04.2015, 18:03 | |
Ответы с готовыми решениями:
41
Ошибка "attempt to re-open an already-closed object: sqlitequery:" Ошибка при работе с Entity Framework (Object reference not set to an instance of an object) Attempt to assign property of non-object Notes Error: Attempt To Reopen An Open Container Open-closed principle |
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
09.04.2015, 18:28 | 2 |
db.close() в onPause()
Post.close()
0
|
8 / 8 / 4
Регистрация: 11.03.2015
Сообщений: 212
|
|||||||||||
09.04.2015, 18:56 [ТС] | 3 | ||||||||||
Rube, подскажите конкретнее как это сделать. EventActivity.java в методе onCreate на месте db.close() поставить Post.close()? Или нет?
Добавлено через 24 минуты Сделал как Rube предложил.
0
|
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
|
09.04.2015, 19:09 | 4 |
Зачем вообще самому закрывать?
http://touchlabblog.tumblr.com... connection
0
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
09.04.2015, 19:29 | 5 |
Armagedo, что имеем то имеем, это библиотека чтоли какая?
0
|
8 / 8 / 4
Регистрация: 11.03.2015
Сообщений: 212
|
|||||||||||
09.04.2015, 19:30 [ТС] | 6 | ||||||||||
Armagedo, Вы думаете, что это с закрытием именно связано? Просто есть подозрения, что все проблемы исходят из класса DB.java, а именно от функции GetCatalogValueByName, именно в cur = mDB.rawQuery(...), так как после нее уже не получаем лог и программа на этом обрывается.
0
|
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
||||||
09.04.2015, 19:39 | 7 | |||||
Rube,
нет, там говорится о том, что система сама позаботится о закрытии. И если тебе не сверхважно именно самому отслеживать, когда разрывать "соединение", то в принципе человек говорит, что - открой и забудь, работай на здоровье. Только не пытайся дальше переоткрыть открытую Т.е.
0
|
8 / 8 / 4
Регистрация: 11.03.2015
Сообщений: 212
|
|
09.04.2015, 19:42 [ТС] | 8 |
Господа, так что на счёт моей программы? После создания Spinner'а закрываю курсор, но ошибка остаётся. В какой мелочи кроется дьявол? Что не так? Если нужно могу предоставить полную программу. Прошу помощи, так как нахожусь на грани близкой к дедлайну.
0
|
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
|
09.04.2015, 19:45 | 9 |
Naomis, убирал?
0
|
8 / 8 / 4
Регистрация: 11.03.2015
Сообщений: 212
|
|
09.04.2015, 19:48 [ТС] | 10 |
0
|
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
|
09.04.2015, 19:53 | 11 |
0
|
8 / 8 / 4
Регистрация: 11.03.2015
Сообщений: 212
|
|
09.04.2015, 19:57 [ТС] | 12 |
Armagedo, то есть совсем убрать "db.close();" из EventActivity.java метода onCreate?
0
|
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
||||||
09.04.2015, 20:04 | 13 | |||||
Да, я ж вроде постоянно об этом и писал...
Ну и "лишний" код, образовывающийся в DB после этого
0
|
8 / 8 / 4
Регистрация: 11.03.2015
Сообщений: 212
|
||||||||||||||||
09.04.2015, 20:07 [ТС] | 14 | |||||||||||||||
Armagedo, за комментировал db.close(); и лог категорично изменился!!
Куски кода.
Armagedo, извини, я новичок, весьма туго соображаю.
0
|
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
|
09.04.2015, 20:13 | 15 |
Изменился, конечно, поскольку вылезла ошибка, до которой раньше система не доходила в силу того, что она валилась на предыдущей ошибке.
Смотри, как он у тебя там правильно звучит.
0
|
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
|
09.04.2015, 20:18 | 17 |
Причём здесь курсор, если речь идет о закрытии соединения с базой данных?
Курсоры закрывай себе так как и закрывал после подсказки Rube. База данных (опосредованно db), курсор (Post) - разницу улавливаешь? Курсор закрываешь, базу - нет
0
|
8 / 8 / 4
Регистрация: 11.03.2015
Сообщений: 212
|
||||||||||||||||||||||||||
09.04.2015, 20:31 [ТС] | 18 | |||||||||||||||||||||||||
Если честно, то улавливаю, вроде бы, но не то что бы явно...
Программу поправил... Спасибо огромное. Имена столбцов в БД... Но "FATAL EXCEPTION: main " всё ещё есть, но уже по другим причинам, вроде.
Добавлено через 8 минут Для таблицы "meeting" работает некорректно
0
|
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
|
09.04.2015, 20:32 | 19 |
ПилятЪ.
База данных - это сборище таблиц. Курсор - это тоже таблица, но "временная", для хранения результатов запроса. Так анписано ж Запрашивается запись с номером 0 при количестве записей 0. В методе onClick, в строке 119 программы
0
|
8 / 8 / 4
Регистрация: 11.03.2015
Сообщений: 212
|
|||||||||||
09.04.2015, 20:36 [ТС] | 20 | ||||||||||
Armagedo, прости тугодума. Только не злись, ты даже не представляешь как помогаешь мне.
0
|
09.04.2015, 20:36 | |
09.04.2015, 20:36 | |
Помогаю со студенческими работами здесь
20
Warning: Attempt to modify property of non-object in и Warning: Attempt to modify property of non-object in There is already an open DataReader associated with this Command which must be closed first There is already an open DataReader associated with this Connection which must be closed first Принцип open/closed и контруктором Ошибка при соединении с БД SQLite: Unable to open database file Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |