Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
True
2 / 2 / 1
Регистрация: 21.06.2014
Сообщений: 108
1

Exception при подключении

31.03.2015, 22:42. Просмотров 533. Ответов 12
Метки нет (Все метки)

В onCreate задаю статическое поле, создавая БД
Далее пытаюсь открыть подключение для onCreate
Java
1
2
3
DataBase.DB = new DataBase(this);
        SQLiteDatabase sdb = DataBase.DB.getWritableDatabase();
        DataBase.DB.onCreate(sdb);
и падает вот такой Exception
Код
03-31 15:36:47.193    1523-1523/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.example.myapplication, PID: 1523
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapplication/com.timetable.MainActivity}: java.lang.IllegalStateException: attempt to re-open an already-closed object: SQLiteDatabase: /data/data/com.example.myapplication/databases/RSP
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5001)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.IllegalStateException: attempt to re-open an already-closed object: SQLiteDatabase: /data/data/com.example.myapplication/databases/RSP
            at android.database.sqlite.SQLiteClosable.acquireReference(SQLiteClosable.java:55)
            at android.database.sqlite.SQLiteDatabase.endTransaction(SQLiteDatabase.java:520)
            at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:263)
            at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
            at com.timetable.MainActivity.onCreate(MainActivity.java:167)
            at android.app.Activity.performCreate(Activity.java:5231)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
************at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
************at android.app.ActivityThread.access$800(ActivityThread.java:135)
************at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
************at android.os.Handler.dispatchMessage(Handler.java:102)
************at android.os.Looper.loop(Looper.java:136)
************at android.app.ActivityThread.main(ActivityThread.java:5001)
************at java.lang.reflect.Method.invokeNative(Native Method)
************at java.lang.reflect.Method.invoke(Method.java:515)
************at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
************at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
************at dalvik.system.NativeStart.main(Native Method)
Начинается ни с того, ни с сего
Уже который раз
До этого само-собой как-то проходило
пробовал перезапуск, не помогает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2015, 22:42
Ответы с готовыми решениями:

Throwing new exception with unexpected pending exception
Добрый день. Сразу перейдем к коду: public interface ApiInterface...

Exception при нажатии любых кнопок
Я выставил листенер самим правильным образом - через xml, но при нажатии...

Exception при использовании анимации фрагментов
В приложении есть 2 фрагмента сменяющие друг друга на экране....

FATAL EXCEPTION при смене фрагмента
При смене фрагмента ИНОГДА вываливается ошибка 01-20 14:44:55.539...

Exception при использовании LocationClient (Google Play Services)
Я пишу сервис для получения location. Есть IntentService и AlarmReceiver (чтобы...

12
vindigo
20 / 20 / 3
Регистрация: 15.05.2014
Сообщений: 80
01.04.2015, 09:37 2
Привет! А можно больше кода?
Такое вроде происходит, если попытаться обратиться к уже закрытой базе.
0
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 257
01.04.2015, 09:43 3
at com.timetable.MainActivity.onCreate(MainActivity.java:167)


вот этот момент по-подробнее
0
True
2 / 2 / 1
Регистрация: 21.06.2014
Сообщений: 108
01.04.2015, 10:52  [ТС] 4
vindigo, fgtmenow,
Цитата Сообщение от True Посмотреть сообщение
//это начало метода onCreate. выше ничего нет.
DataBase.DB = new DataBase(this);
SQLiteDatabase sdb = DataBase.DB.getWritableDatabase(); - а это и есть 167 строка.
DataBase.DB.onCreate(sdb);
0
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 257
01.04.2015, 11:17 5
DataBase.DB = new DataBase(this);

ищи вот тут
0
True
2 / 2 / 1
Регистрация: 21.06.2014
Сообщений: 108
01.04.2015, 16:45  [ТС] 6
fgtmenow,
Java
1
2
3
    public DataBase(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
это все, что содержит конструктор.
база создается, проверял
0
CoolMind
422 / 404 / 66
Регистрация: 06.10.2012
Сообщений: 1,732
01.04.2015, 19:31 7
True, вы продолжаете нас удивлять)
Я сам полгода мучался с БД в Андроиде, сейчас временно отошёл от дел, но советую почитать много разных источников и использовать в работе SQLiteAssetHelper с github'а. По-видимому, проблема возникает со статическими переменными. Я обычно советую не использовать их в программе без необходимости. Тем более, что после выхода из программы и входа заново они не очищают свои значения (очищают только после перезагрузки JVM).
Посему полагаю, что проблема кроется в классе DataBase и его поле DB. Уберите статику, заполняйте поле каждый раз заново. Ошибка говорит о том, что база была закрыта [в предыдущем сеансе], но вы пытаетесь делать с ней что-то.
0
True
2 / 2 / 1
Регистрация: 21.06.2014
Сообщений: 108
02.04.2015, 21:33  [ТС] 8
CoolMind, а как теперь можно запустить то?
0
CoolMind
422 / 404 / 66
Регистрация: 06.10.2012
Сообщений: 1,732
02.04.2015, 23:51 9
True, в смысле? Как обычно. Немного меняйте код и компилируйте.
0
True
2 / 2 / 1
Регистрация: 21.06.2014
Сообщений: 108
03.04.2015, 10:28  [ТС] 10
CoolMind, ну так все равно этот эксепшен кидает
0
CoolMind
422 / 404 / 66
Регистрация: 06.10.2012
Сообщений: 1,732
03.04.2015, 12:22 11
True, что-то здесь нечисто. Вы представили не весь код?
Может быть, обращаетесь к базе из курсора в тот момент, когда база уже закрыта? Или делаете чтение из базы, когда она обновляется (или записывается)? Или она не открыта совсем?
0
True
2 / 2 / 1
Регистрация: 21.06.2014
Сообщений: 108
04.04.2015, 18:57  [ТС] 12
вот скришоты.
начинается работа программы и при попытке работы с базой падает приложение
0
Миниатюры
Exception при подключении   Exception при подключении  
True
2 / 2 / 1
Регистрация: 21.06.2014
Сообщений: 108
05.04.2015, 17:08  [ТС] 13
CoolMind, базу данных я могу видеть в "android device monitor"
она создается
но подключиться к ней не получается

Добавлено через 21 час 41 минуту
проблему решил.
переписал на orm
0
05.04.2015, 17:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2015, 17:08

FATAL EXCEPTION: main при старте приложения на android ниже API 21
Не могу понять где искать ошибку. Приложение при запуске на android ниже API...

Ошибка при подключении GIT к Android Studio
Добрый день. При подключению Git к проекту выскакивает такая ошибка Invalid...

Обновление данных ListView при подключении к сети WiFi Android
Написал приложение для получения курса валют с сайта РБК. Все работает кроме...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru