【问题标题】:Unresolved reference: DaoSession using greendao and kotlin未解决的参考:DaoSession 使用 greendao 和 kotlin
【发布时间】:2017-01-06 14:02:28
【问题描述】:

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

【问题讨论】:

标签: android kotlin greendao


【解决方案1】:

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

apply plugin: 'org.greenrobot.greendao'

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

【讨论】:

    【解决方案2】:

    这是因为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

    【讨论】:

    • 你拯救了我的一天,谢谢!
    【解决方案3】:

    注意:如果您的实体类是用 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 插件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-25
      • 1970-01-01
      • 1970-01-01
      • 2019-04-12
      • 2021-10-29
      • 2018-10-16
      • 2023-03-25
      • 1970-01-01
      相关资源
      最近更新 更多