Android会议室数据库 - 未解决的参考@Entity和其他注释

时间:2017-08-17 10:27:48

标签: android android-studio kotlin android-room

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

在Lint检查中,它显示所有导入的注释的删除已弃用的符号导入 .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"

2 个答案:

答案 0 :(得分:5)

这里有一个例子。

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"

答案 1 :(得分:2)

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

android.arch.lifecycle:livedata:1.1.1

与使用1.1.11.0.0版本的房间相比,它仍然找不到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"