Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 07.10.2019
Сообщений: 80

Kotlin не работает экспорт готовой SQLite базы данных в Room?

10.12.2025, 09:36. Показов 279. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть готовая база данных SQLite с контентом, надо добавить в приложение.

Инициализатор
Kotlin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
@Module
@InstallIn(SingletonComponent::class)
object HolyDBModule {
 
    @Provides
    @Singleton
    fun provideHolydataDb(app: Application): HolydataDatabase{
        return Room.databaseBuilder(
            app,
            HolydataDatabase::class.java,
            "holydata.db"
        )
            .createFromAsset("holydata.db")
            //.addCallback(object : RoomDatabase.Callback() {
            //    override fun onCreate(db: SupportSQLiteDatabase) {
            //        super.onCreate(db)
            //        // Логика для копирования из assets, если нужно
            //    }
            //})
            .build()
    }
 
    @Provides
    @Singleton
    fun provideHolydataRepository(db: HolydataDatabase): HolydataRepository {
        return HolyRepositoryImpl(db.holydataDao)
    }
 
}
База данных
Kotlin
1
2
3
4
5
@Database(entities = [Covenant::class, Message::class], version = 1, exportSchema = false)
abstract class HolydataDatabase: RoomDatabase() {
    abstract val holydataDao: HolyDao
 
}
Сама База Данных в SQLite

Дата классы
Covenant
Kotlin
1
2
3
4
5
6
7
@Entity(tableName = "Covenant")
data class Covenant(
    @PrimaryKey(autoGenerate = true)
    val Id: Int,
    val Title: String,
    val Status: Int
)
Holymessage
Kotlin
1
2
3
4
5
6
7
8
9
10
@Entity(tableName = "Holymessage")
data class Message(
    @PrimaryKey(autoGenerate = false)
    @ColumnInfo(name = "Id")
    val Id: Int,
    @ColumnInfo(name = "Title")
    val Title: String,
    @ColumnInfo(name = "Status")
    val Status: Int
)
После сборки приложения при запросе из базы данных. 1 таблица выводиться, а Holymessage выдаёт ошибку:
java.lang.IllegalStateException: Pre-packaged database has an invalid schema: Holymessage(com.ramunissoft.holyapp.feat ure_holydata.data.entities.Message).
Expected:
TableInfo{name='Holymessage', columns={Status=Column{name='Status', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=0, defaultValue='undefined'}, Title=Column{name='Title', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='undefined'}, Id=Column{name='Id', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=1, defaultValue='undefined'}}, foreignKeys=[], indices=[]}
Found:
TableInfo{name='Holymessage', columns={Id=Column{name='Id', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=1, defaultValue='undefined'}, Title=Column{name='Title', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='undefined'}, Status=Column{name='Status', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=0, defaultValue='undefined'}}, foreignKeys=[], indices=[]}

Уже всё перепробовал чтоб данные SQLite соответствовали Room, всё равно ошибка.

https://hrankit.github.io/Room... nceFinder/
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.12.2025, 09:36
Ответы с готовыми решениями:

Kotlin Jetpack Compose как считать объект класса из Базы Данных Room
База данных хранит список объектов Есть у меня DAO с запросами @Dao interface FavoritesDAO {...

Room использование готовой базы
У меня есть готовая база данных, которую хочу добавить в проект, возникает вопрос, как это сделать...

Проблема с ROOM (Kotlin)
Добавляю в своё приложение базу данных Room. На этапе компиляции выдаёт странные ошибки в Dao и...

2
9 / 5 / 4
Регистрация: 05.10.2022
Сообщений: 32
10.12.2025, 12:38
Ну... пишет, что схема неверная. Честно говоря, смотреть и искать по коду, что не так, сложновато с SQL
Чтобы избежать подобных проблем, если приложение пушитя с нуля, и база не сильно большая, делается это так:
1. делаешь создание БД с exportSchema = true
2. при сборке создается JSON файл со схемой
3. берешь из этого JSON файла SQL команды на создание таблиц (не забудь имена столбцов поставить)
4. создаешь по этим командам свою БД
5. заполняешь её данными
в таком случае конфликтов быть не должно
0
425 / 147 / 27
Регистрация: 12.12.2020
Сообщений: 1,176
10.12.2025, 22:09
для title у вас прописано notnull true, а в sql нет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.12.2025, 22:09
Помогаю со студенческими работами здесь

Kotlin, room - отношения между таблицами
Допустим, есть таблица гараж (id, name, etc), есть таблица машина (id, name. etc). К ним есть свои...

Room: подключение готовой БД
Задача: имеется готовая дб, ее необходимо использовать в приложении. Собственно вопрос как...

Работа с базой данных sqlite(room) Android
Добрый день,я новичек в разработке, структура такая: Есть сущность "Пациент" у пациента есть поле...

Аналог Room + LiveData в SQLite
Ув. программисты, подскажите, пожалуйста, как мне реализовать при прямом использовании БД SQLite...

Как сделать замедление запроса в SQLite Room?
У меня есть подозрение, что текущая реализация запросов к БД и реакции на результат может зависать...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru