Данная ошибка при работе c Room обычно связана с неполным или неверным описанием в gradle файлах, связанных с обработчиком аннотаций. Т.е. суть ошибки в том, что он просто не может прочитать аннотации, которые вы сделали к классу базы данных, и по умолчанию ищет класс с указанным в тексте ошибки именем.
Наиболее правильный путь — это посмотреть документацию по room (либо здесь:)
https://developer.android.com/jetpack/androidx/releases/room#kts
Либо набрав в поиске «room dependencies android».
В документации обычно описывается только те инструкции, что необходимо ставить в gradle файлы, к примеру для версии room 2.6.1:
gradle уровня Module:app должен содержать в секции dependencies:
1 2 3 4 5 |
dependencies { // ROOM v 2.6.1 val room_version = "2.6.1" implementation("androidx.room:room-runtime:$room_version") ksp("androidx.room:room-compiler:$room_version") |
И возможно какие то интеграционные зависимости, например, при использовании RxJava v3, нужно добавить:
1 |
implementation("androidx.room:room-rxjava3:$room_version") |
При этом, если android studio не раcпознаёт функцию ksp, то надо добавить соответствующий плагин для поддрежки KSP (Kotlin Symbol Processing).
О подключении KSP можно почитать вот тут. Это статья о миграции с KAPT на KSP, но там описано как подключить KSP плагин.
Возможно, что также потребуется внести изменения в файл libs.versions.xml. Добавить туда строки:
1 2 3 4 5 6 7 |
[versions] kotlin = "2.0.21" ksp = "2.0.21-1.0.27" ... [plugins] kotlinAndroidKsp = { id = "com.google.devtools.ksp", version.ref = "ksp" } ... |
Обратите внимание, что версия ksp = «2.0.21-x.x.x» должна коррелировать с версией kotlin (в примере она 2.0.21.