Kotlin Fragment中创建关联数据库的ViewModel报错CaloryDB_Impl不存在
Room 报错CaloryDB_Impl不存在修复方案
错误的核心原因是Room注解处理器没有正常工作,无法生成数据库类对应的实现类,按以下步骤修复:
1. 补全模块级构建脚本配置
首先在app模块的build.gradle文件头部启用kapt插件:
Groovy语法(build.gradle)
plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' id 'kotlin-kapt' }
Kotlin DSL语法(build.gradle.kts)
plugins { id("com.android.application") id("org.jetbrains.kotlin.android") id("kotlin-kapt") }
然后在同文件的dependencies块中添加完整的Room依赖,确保版本统一:
Groovy语法
dependencies { def room_version = "2.5.0" implementation "androidx.room:room-runtime:$room_version" kapt "androidx.room:room-compiler:$room_version" implementation "androidx.room:room-ktx:$room_version" }
Kotlin DSL语法
dependencies { val roomVersion = "2.5.0" implementation("androidx.room:room-runtime:$roomVersion") kapt("androidx.room:room-compiler:$roomVersion") implementation("androidx.room:room-ktx:$roomVersion") }
2. 清理重建项目
配置完成后执行:
- 菜单栏选择
Build -> Clean Project - 清理完成后选择
Build -> Rebuild Project
等待构建完成即可生成CaloryDB_Impl实现类。
3. 异常场景排查
如果重建后仍报错,检查以下项:
- 确认
History、Product实体类都添加了@Entity注解,HistoryDao添加了@Dao注解 - 确认
AndroidManifest.xml的<application>节点配置了android:name=".DataBaseApp",自定义Application类才能生效 - 检查所有Room相关依赖的版本完全一致,避免版本冲突
内容的提问来源于stack exchange,提问作者FawkesMc
相关产品推荐
相关产品推荐

