添加
后compile "android.arch.persistence.room:runtime:1.0.0-rc1"
我的所有数据绑定类都被破坏了。任何线索?
答案 0 :(得分:13)
事实证明,javac最多会打印100个编译错误,在处理预处理器时,您经常需要上一条错误消息,而不是第一条错误消息。将它放在您的顶级build.gradle文件中并变得高兴:
allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xmaxerrs" << "4000"
options.compilerArgs << "-Xmaxwarns" << "4000"
}
}
}
感谢:https://movieos.org/2017/android-room-data-binding-compile-time-errors/
答案 1 :(得分:2)
将会议室实体添加到数据库entities
后,出现数据绑定错误。
问题出在实体的吸气器/设置器不正确。如果更改了字段名称,只需重新生成getter / setter。希望会有所帮助。
答案 2 :(得分:0)
我有同样的问题。花了几个小时之后,我终于通过将LiveData<ArrayList<MovieFavEntity>>
替换为LiveData<List<MovieFavEntity>>
来解决了我的错误。
只需检查返回类型和Dao中不同方法的查询。
答案 3 :(得分:0)
正如其他人所述,问题不是与数据绑定类/设置有关,而是与Room批注中的某个错误有关。就我而言,这是DAO类的错误。如果您使用的是Gradle插件的旧版本,则在获取Room编译器错误之前,您会看到所有Data Binding编译器错误,该错误指向您的Room代码中的实际问题。
此问题已在3.4 Android Gradle plugin中进行了修复,因此您现在可以更新到该值(需要Android Studio 3.4或更高版本)。它将在第一次打开项目时提示您更新Android gradle插件:
更多信息(包括打印出所有编译器错误的代码)here。