GreenDAO是否支持Kotlin?Java转Kotlin遇DAO引用报错如何解决
GreenDAO 对 Kotlin 的支持情况
GreenDAO 自 3.2.0 版本起正式支持 Kotlin,不存在语言层面的兼容问题,你碰到的 DAO 未解析引用问题基本都是配置错误导致,和依赖引入顺序没有直接关联。
对应解决方案
- 修正插件与注解处理器配置
Kotlin 项目不能使用annotationProcessor引入 GreenDAO 的注解处理器,必须替换为 Kotlin 专用的kapt,同时保证kotlin-kapt插件在 GreenDAO 插件之前声明,模块级build.gradle配置参考:plugins { id 'com.android.application' id 'kotlin-android' id 'kotlin-kapt' // 必须放在greendao插件前声明 id 'org.greenrobot.greendao' } dependencies { implementation 'org.greenrobot:greendao:3.3.0' // 替换annotationProcessor为kapt kapt 'org.greenrobot:greendao-processor:3.3.0' } - 检查实体类规则
转成 Kotlin 的实体类必须保证可见性为 public,不要添加internal/private修饰符,类上的@Entity注解不要遗漏,否则编译期不会生成对应的 DAO 类。如果实体属性用了 Kotlin 的语法简写,要给需要持久化的字段加@JvmField注解,避免注解处理器识别不到字段。 - 清理缓存重新构建
配置修改完成后,先执行./gradlew clean清空旧构建产物,再执行 Make Project 重新触发注解处理。正常情况下生成的 DAO 文件会存放在build/generated/source/kapt/对应包路径下,文件生成后未解析引用的报错会自动消失。如果还是找不到,检查IDE是否开启了注解处理开关:在 Settings > Build > Compiler > Annotation Processors 中勾选 Enable annotation processing。
内容的提问来源于stack exchange,提问作者Radhika bajaj
相关产品推荐
相关产品推荐

