Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
True
2 / 2 / 0
Регистрация: 21.06.2014
Сообщений: 108
#1

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

31.03.2015, 22:42. Просмотров 448. Ответов 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)
Начинается ни с того, ни с сего
Уже который раз
До этого само-собой как-то проходило
пробовал перезапуск, не помогает
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2015, 22:42     Exception при подключении
Посмотрите здесь:

FATAL EXCEPTION: main Android
Exception при нажатии любых кнопок Android
Android Exception в AsyncTask
Android Exception при использовании LocationClient (Google Play Services)
Android FATAL EXCEPTION: AsyncTask #3
Android Fatal Exception: main
Android FATAL EXCEPTION: main
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vindigo
18 / 18 / 3
Регистрация: 15.05.2014
Сообщений: 78
01.04.2015, 09:37     Exception при подключении #2
Привет! А можно больше кода?
Такое вроде происходит, если попытаться обратиться к уже закрытой базе.
fgtmenow
74 / 74 / 7
Регистрация: 29.03.2012
Сообщений: 254
01.04.2015, 09:43     Exception при подключении #3
at com.timetable.MainActivity.onCreate(MainActivity.java:167)


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

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

Android Exception при использовании анимации фрагментов
Ошибка при подключении GIT к Android Studio Android
Android FATAL EXCEPTION: main
FATAL EXCEPTION: main Android
Android Throwing new exception with unexpected pending exception

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

Или воспользуйтесь поиском по форуму:
True
2 / 2 / 0
Регистрация: 21.06.2014
Сообщений: 108
05.04.2015, 17:08  [ТС]     Exception при подключении #13
CoolMind, базу данных я могу видеть в "android device monitor"
она создается
но подключиться к ней не получается

Добавлено через 21 час 41 минуту
проблему решил.
переписал на orm
Yandex
Объявления
05.04.2015, 17:08     Exception при подключении
Ответ Создать тему
Опции темы

Текущее время: 23:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru