Страница 1 из 1

Урок 5. Room. Основы

Добавлено: 09 янв 2018, 10:49
damager82
Библиотека Room предоставляет нам удобную обертку для работы с базой данных SQLite. В этом уроке рассмотрим основы. Как подключить к проекту. Как получать, вставлять, обновлять и удалять данные. 


Click here to read this article!

Re: Урок 5. Room. Основы

Добавлено: 05 апр 2018, 18:45
CAH ek
Почему после создания Application класса приложение сразу после запуска вылетает со следующей ошибкой?
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to create application kotlinapp1.App: java.lang.RuntimeException:
cannot find implementation for kotlinapp1.AppDatabase. AppDatabase_Impl does not exist

Все шаги до этого сделал как в уроке.. :(

Re: Урок 5. Room. Основы

Добавлено: 05 апр 2018, 20:07
DOOMer
CAH ek
Видимо что-то сделали не так. Покажите код Application-класса и AppDatabase-класса.

Re: Урок 5. Room. Основы

Добавлено: 05 апр 2018, 20:52
CAH ek
Уже узнал ответ.
Я конвертировал java в kotlin, а для него нужно было ещё заменить annotationProcessor на kapt и добавить к плагинам apply plugin 'kotlin-kapt'

Re: Урок 5. Room. Основы

Добавлено: 04 май 2018, 11:53
stoplus
У меня такая ошибка при компилировании:
Schema export directory is not provided to the annotation processor so we cannot export the schema. You can either provide `room.schemaLocation` annotation processor argument OR set exportSchema to false.
Что это значит и как это исправить?

Re: Урок 5. Room. Основы

Добавлено: 04 май 2018, 12:53
DOOMer
В аннотацию @Database вашего класса AppDatabase добавьте параметр exportSchema со значением false.

Re: Урок 5. Room. Основы

Добавлено: 30 май 2018, 06:00
sergeyri
Добрый день! Однако странно, ведь при создании новой таблицы в базе SQLite не требует обновления версии. В одном моем приложении таблицы создаются динамически, в результате действий пользователя. Как быть в этом случае при использовании Room?

Re: Урок 5. Room. Основы

Добавлено: 06 июн 2019, 10:09
Akalar
Из Database объекта получаем Dao.

EmployeeDao employeeDao = db.employeeDao();

Теперь мы можем работать с Employee объектами. Но эти операции должны выполняться не в UI потоке. Иначе мы получим Exception.
А это как? Выдало ошибку:
Caused by: java.lang.IllegalStateException: Cannot access database on the main thread since it may potentially lock the UI for a long period of time.
в строке:
employeeDao.insert(employee);