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

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

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

Exception при подключении - Программирование Android

31.03.2015, 22:42. Просмотров 477. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Exception при подключении (Программирование Android):

Throwing new exception with unexpected pending exception - Программирование Android
Добрый день. Сразу перейдем к коду: public interface ApiInterface { @GET("object/preview")

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

Exception при нажатии любых кнопок - Программирование Android
Я выставил листенер самим правильным образом - через xml, но при нажатии вылетает ошибка: 02-14 21:55:09.355: ERROR/AndroidRuntime(974):...

Exception при использовании анимации фрагментов - Программирование Android
В приложении есть 2 фрагмента сменяющие друг друга на экране. fragmentTransaction = fragmentManager.beginTransaction(); ...

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

FATAL EXCEPTION: main при старте приложения на android ниже API 21 - Программирование Android
Не могу понять где искать ошибку. Приложение при запуске на android ниже API 21 сразу падает с ошибкой 09-08 03:19:31.171...

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


вот этот момент по-подробнее
0
True
2 / 2 / 0
Регистрация: 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
Сообщений: 254
01.04.2015, 11:17 #5
DataBase.DB = new DataBase(this);

ищи вот тут
0
True
2 / 2 / 0
Регистрация: 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
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
01.04.2015, 19:31 #7
True, вы продолжаете нас удивлять)
Я сам полгода мучался с БД в Андроиде, сейчас временно отошёл от дел, но советую почитать много разных источников и использовать в работе SQLiteAssetHelper с github'а. По-видимому, проблема возникает со статическими переменными. Я обычно советую не использовать их в программе без необходимости. Тем более, что после выхода из программы и входа заново они не очищают свои значения (очищают только после перезагрузки JVM).
Посему полагаю, что проблема кроется в классе DataBase и его поле DB. Уберите статику, заполняйте поле каждый раз заново. Ошибка говорит о том, что база была закрыта [в предыдущем сеансе], но вы пытаетесь делать с ней что-то.
0
True
2 / 2 / 0
Регистрация: 21.06.2014
Сообщений: 108
02.04.2015, 21:33  [ТС] #8
CoolMind, а как теперь можно запустить то?
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
02.04.2015, 23:51 #9
True, в смысле? Как обычно. Немного меняйте код и компилируйте.
0
True
2 / 2 / 0
Регистрация: 21.06.2014
Сообщений: 108
03.04.2015, 10:28  [ТС] #10
CoolMind, ну так все равно этот эксепшен кидает
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
03.04.2015, 12:22 #11
True, что-то здесь нечисто. Вы представили не весь код?
Может быть, обращаетесь к базе из курсора в тот момент, когда база уже закрыта? Или делаете чтение из базы, когда она обновляется (или записывается)? Или она не открыта совсем?
0
True
2 / 2 / 0
Регистрация: 21.06.2014
Сообщений: 108
04.04.2015, 18:57  [ТС] #12
вот скришоты.
начинается работа программы и при попытке работы с базой падает приложение
0
Миниатюры
Exception при подключении   Exception при подключении  
True
2 / 2 / 0
Регистрация: 21.06.2014
Сообщений: 108
05.04.2015, 17:08  [ТС] #13
CoolMind, базу данных я могу видеть в "android device monitor"
она создается
но подключиться к ней не получается

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

Ошибка при подключении GIT к Android Studio - Программирование Android
Добрый день. При подключению Git к проекту выскакивает такая ошибка Invalid VCS root mapping The directory is registered as a Git...

Exception в AsyncTask - Программирование Android
Доброго всем. Проблема вот в чем: периодически во время выполнения одного из потоков в AsyncTask вылетает следующее: 04-21...

FATAL EXCEPTION: main - Программирование Android
Забавная у меня ситуация, вот создаю новый проект и он не хочет запускаться ни в какую, хотя ничего своего не добавляю в него ...

FATAL EXCEPTION: AsyncTask #3 - Программирование Android
Не могу понять в чем проблема гуглил ничего не смог найти (я новичек уж извините)). 01-21 12:29:10.019:...


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

Или воспользуйтесь поиском по форуму:
13
Yandex
Объявления
05.04.2015, 17:08
Ответ Создать тему
Опции темы

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