Android 房间数据库 - 未解决的引用 @Entity 和其他注释

Android Room Database - Unresolved reference @Entity and other annotations

我在我的应用程序中使用 Android Room Persistence 库 (v.1.0.0-alpha1)。 虽然它工作正常,但当我在 Android 工作室中打开模型 class(Kotlin 数据 class)时,它显示用于 Room 数据库的所有注释的未解析引用,如 @ Entity@ColumnInfo 等。我尝试将 arch 库的版本更改为 1.0.0-alpha5,但结果相同。

在 Lint 检查中它显示 为所有导入删除不推荐使用的符号导入 annotations.AS 之前没有显示此错误。

我该如何解决这个问题

编辑 以下是我在 build.gradle

中添加的导入
compile "android.arch.persistence.room:runtime:1.0.0-alpha5"

compile "android.arch.persistence.room:rxjava2:1.0.0-alpha5"

annotationProcessor "android.arch.persistence.room:compiler:1.0.0-alpha5"

kapt "android.arch.persistence.room:compiler:1.0.0-alpha5"

这里有一个例子。

https://github.com/jsperk/PocRoom

记住,你需要添加:

Gradle(项目)--> maven

Gradle(模块应用程序)依赖项 -->

implementation "android.arch.persistence.room:runtime:1.0.0"
annotationProcessor "android.arch.persistence.room:compiler:1.0.0"
testImplementation "android.arch.persistence.room:testing:1.0.0"
implementation "android.arch.persistence.room:rxjava2:1.0.0"

在我的项目中,我有这个问题,因为我正在使用

android.arch.lifecycle:livedata:1.1.1

比起使用版本1.1.11.0.0的room,还是找不到android.arch.persistence.room.Entity.

找了很久,发现删除LiveData实现后问题解决。然后我注意到,这两个库的版本冲突。最后我livedata和room用了同一个版本的1.1.0(因为livedata没有1.0.0的版本),解决了

def arch_version = "1.1.0"
implementation  "android.arch.persistence.room:runtime:$arch_version"
annotationProcessor "android.arch.persistence.room:compiler:$arch_version"
implementation "android.arch.persistence.room:rxjava2:$arch_version"
implementation "android.arch.persistence.room:common:$arch_version"
implementation "android.arch.lifecycle:livedata:$arch_version"
implementation "android.arch.lifecycle:extensions:$arch_version"

将这些依赖项添加到您的 Gradle(Module App) 文件将解决问题:-

implementation "android.arch.persistence.room:runtime:1.1.1"
annotationProcessor "android.arch.persistence.room:compiler:1.1.1"
testImplementation "android.arch.persistence.room:testing:1.1.1"
implementation "android.arch.persistence.room:rxjava2:1.1.1"