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.1
或1.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"
我在我的应用程序中使用 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.1
或1.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"