我在现有代码中使用了数据绑定,现在我正在迁移到Room以进行持久化。 我已按照 Florina's Blog中提到的步骤进行了审核
当我删除房间依赖性时,我的代码构建正常,没有java代码错误或BR相关错误
annotationProcessor 'android.arch.persistence.room:compiler:1.0.0'
及其运行,但给出运行时异常,说database_Impl不存在。因为它无法生成该文件。
但是在我把Annotation处理器放回去后,它给了我
Error:(29, 37) error: cannot find symbol class BR
我使用的gradle插件是com.android.tools.build:gradle:3.0.1
他们俩似乎都没有合作
到目前为止采取的步骤:
有没有人一起使用Room和Data绑定?
答案 0 :(得分:9)
经过4天的努力,我终于让我的代码正常运行了。
解决的步骤数据绑定错误,如 错误:包com.packagename.databinding不存在 错误:找不到符号类CustomMainActivityBinding
app gradle必须添加以下代码才能查看默认情况下出现的100多个错误
annotationProcessor 'com.android.databinding:compiler:3.0.1'
implementation 'android.arch.lifecycle:extensions:1.0.0'
implementation 'android.arch.persistence.room:runtime:1.0.0'
annotationProcessor 'android.arch.lifecycle:compiler:1.0.0'
annotationProcessor 'android.arch.persistence.room:compiler:1.0.0'
数据绑定和Room arch组件的Gradle依赖关系
registry.notifyChange(this, BR.bar);
注意:Gradle插件版本为3.0.1
我更改了所有虚拟机以实现Observable并调用
@Override
public void addOnPropertyChangedCallback(OnPropertyChangedCallback
callback) {
registry.add(callback);
}
@Override
public void removeOnPropertyChangedCallback(
OnPropertyChangedCallback callback) {
registry.remove(callback);
}
如果通知更改并且还实现了重写方法
data () {
return {
post: {
body: 'this is body'
}
}
}
这些东西使我的代码构建,但是当我解决了与Room查询相关的错误时,它运行没有异常。这是主要原因,代码正在构建但没有运行。当我重新重建我的项目时,我可以看到这些错误。
更新:
在 Android studio 3.1.3 之后, 消息 窗口消失,现在所有构建错误都显示在 Build < / em> 查看。尽管可以使用切换来获取错误的textview响应,但是对于数据绑定错误,它是不够的。
帮助我的解决方案:
我无法在IDE中收到这些错误。
答案 1 :(得分:0)
根据我的经验,以下原因可能会导致错误:
答案 2 :(得分:0)
我在添加房间相关性时遇到了这个问题。以下面的方式添加它以解决该错误。
def roomVersion = "2.0.0-rc01"
implementation "android.arch.persistence.room:runtime:$roomVersion"
annotationProcessor "android.arch.persistence.room:runtime:$roomVersion"
annotationProcessor "android.arch.persistence.room:compiler:$roomVersion"