未解决的参考:使用 greendao 和 kotlin 的 DaoSession

Unresolved reference: DaoSession using greendao and kotlin

我正在尝试将用 java 编写的 android 项目转换为 kotlin。我的 greendao class 是在我每次构建时生成的,我收到一条 Unresolved reference: DaoSession 错误消息。我有
kapt { generateStubs = true } 在我的构建 gradle 代码中。

这是由于 Greendao 在 默认路径"app/build/generated/source/greendao/" 生成 DaoSession 和其他 Dao 文件造成的,不能被科特林发现。

因此,您只需要通过 将此代码添加到您的模块 Gradle 文件:

来更改 Dao 路径
greendao {
    targetGenDir 'src/main/java' 
}

然后,您会发现在您的项目路径'src/main/java'中生成了DaoSesson.java这样的Dao文件。现在 Kotlin 可以找到 DaoSession。

希望能帮到你。

参考:https://github.com/greenrobot/greenDAO/issues/352

将您的 greendao 插件移到您的应用 kotlin 插件之前 build.gradle,如下所示:

apply plugin: 'org.greenrobot.greendao'

apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android'

注意:如果您的实体 类 是用 Java 编写的,要在您的 Kotlin 类 中使用生成的 greenDAO 文件,您目前可能必须手动添加为 Kotlin 生成的源文件夹编译成功:

android {
    ...
    sourceSets {
        main.java.srcDirs += 'build/generated/source/greendao'
    }
}

来源:https://github.com/greenrobot/greenDAO/issues/395

此外,请参阅 0xAliHn 答案:移动

apply plugin: 'org.greenrobot.greendao'

以上 kotlin 插件