使用Hilt DI时Room创建数据库实例报错ToDoDatabase_Impl不存在
故障根因
报错ToDoDatabase_Impl does not exist是因为Room的注解处理器配置错误:Kotlin项目需要使用kapt处理注解生成实现类,你当前配置使用了Java专属的annotationProcessor,导致Room无法自动生成数据库实现类。
修复步骤
- 修改app模块build.gradle的Room依赖配置,将
annotationProcessor替换为kapt:
// 原错误配置 // implementation "androidx.room:room-runtime:$room_version" // annotationProcessor "androidx.room:room-compiler:$room_version" // 替换为以下正确配置 implementation "androidx.room:room-runtime:$room_version" kapt "androidx.room:room-compiler:$room_version" // 可选添加Room KTX扩展,更好支持Kotlin协程等特性 implementation "androidx.room:room-ktx:$room_version"
- 执行Clean Project清理旧构建缓存,再执行Rebuild Project重新构建项目,确认构建无报错后重新运行App即可。
额外排查点
如果修改后仍然报错,可检查以下配置是否正确:
- 确认Application类已添加
@HiltAndroidApp注解,是Hilt依赖注入生效的前提 - 确认
ToDoDao接口已添加@Dao注解 - 确认根目录build.gradle已正确引入Hilt插件和Kotlin插件,版本与当前项目Kotlin版本匹配
内容的提问来源于stack exchange,提问作者Eslam Ali
相关产品推荐
相关产品推荐

