|
1 / 1 / 0
Регистрация: 17.06.2011
Сообщений: 33
|
||||||||||||||||
Проблема с Room05.10.2023, 23:20. Показов 1302. Ответов 5
Метки нет (Все метки)
Доброго времени суток.
Пытаюсь разобраться с Room. И столкнулся с такой ошибкой при компиляции: "Type of the parameter must be a class annotated with @Entity or a collection/array of it." Если убрать suspend, то приложение компилируется (правда при добавлении записи приложение вылетает с ошибкой, что задержка UI в основном потоке может быть слишком длинной). Не могу понять, почему добавление suspend к функции вызывает ошибку с типами. Task.kt
0
|
||||||||||||||||
| 05.10.2023, 23:20 | |
|
Ответы с готовыми решениями:
5
Проблема с ROOM (Kotlin) RxJava и Room
|
|
1 / 1 / 0
Регистрация: 17.06.2011
Сообщений: 33
|
||||||
| 07.10.2023, 14:03 [ТС] | ||||||
|
@Database(version = 1, entities = [Task::class])
Вот из-за этой строки выдаётся ошибка, но она верная, во всех мануалах так. Что не нравится то компилятору? TaskDatabase.kt
0
|
||||||
|
93 / 66 / 27
Регистрация: 23.06.2019
Сообщений: 477
|
|
| 07.10.2023, 15:15 | |
|
не обращали внимание, что строчка
kapt("androidx.room:room-compiler:2.5.2") подсвечена и даются рекомендации, что рекомендуется сделать? Добавлено через 1 минуту Или как в ошибке написано. Вынести в другой поток. Вариантов починить - масса.
0
|
|
|
1 / 1 / 0
Регистрация: 17.06.2011
Сообщений: 33
|
|
| 07.10.2023, 16:01 [ТС] | |
|
Я занимаюсь изучение мобильной разработки пару недель.
Был бы благодарен за конкретный совет, как поправить (хотя бы один из многих, как вы сказали). Подсвеченный kapt советует использовать KSP Я понимаю, что для вас, возможно, мой вопрос выглядит смешным и глупым, но я нахожусь в тупике, ибо, повторюсь, код написал по книжке, плюс уже все статьи на эту тему developer.android.com просмотрел и везде +- одно и то же, и оно не работает. Ошибка такая: error: Type of the parameter must be a class annotated with @Entity or a collection/array of it. kotlin.coroutines.Continuation<? super kotlin.Unit> $completion); Не вижу, чтобы в ошибке что-то говорилось про поток. В ошибке говорится, что тип параметра должен быть классом с аннотацией @Entity или её коллекцией. Добавлено через 18 минут Это жесть какая-то. Пытался ставить ksp и никак не получалось, всё время писало ошибку, что неизвестный плагин. В итоге сейчас шарился по настройкам Android SDK и решил обновить gradle с версии 8 на 8.4 и... плагин подключился. В общем код начал компилироваться, ошибка с типом пропала. Но вопрос, почему не работало с kapt, хотя должен был работать, так и остался. И вопрос почему не мог найтись ksp тоже остался. 3 дня коту под хвост.
0
|
|
|
93 / 66 / 27
Регистрация: 23.06.2019
Сообщений: 477
|
|
| 07.10.2023, 16:12 | |
|
Потому что криворукие программисты этим room занимаются. У них который раз проблема с suspend вылазит.
Прошлый раз пришлось проапгрейдить библиотеки до беты версии, что бы починилось. В этот раз у них чего-то с процессингом аннотаций накосячено. Можно было не менять kapt на ksp. Использовать не suspend функции в дао, а обычные. И запускать эти функции в другом потоке. Можно еще что-то придумать. Я не знаю. Не важно сколько ты времени занимаешься этим. Они постоянно все ломают и меняют. Поэтому каждый день - как новичок. Добавлено через 4 минуты Сообщения об ошибке вообще ничего не говорят прикладному программисту. ну, не будет же он копаться в исходных кодах этого room/dao? Весь смысл библиотек, что бы они скрывали от нас все, что под капотом. Иначе проще чистый sqlite брать и на нем самому работать с базками данных без room-дао и без чужих косяков. Своих достаточно.
0
|
|
|
1 / 1 / 0
Регистрация: 17.06.2011
Сообщений: 33
|
|
| 07.10.2023, 16:19 [ТС] | |
|
Я примерно так и думал, что это какой-то косяк библиотеки. Т.к. в таком элементарном коде просто не могло быть ошибки.
Так или иначе, спасибо, что откликнулись.
0
|
|
| 07.10.2023, 16:19 | |
|
Помогаю со студенческими работами здесь
6
Room. Не производится запись Room: как правильно инициализировать БД? Работа с Room через createFromAsset
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Воспроизведение звукового файла с помощью 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 и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|