gpt4 book ai didi

android - 具有数据绑定(bind)的房间注释处理器

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:24:26 28 4
gpt4 key购买 nike

我在现有代码中使用了数据绑定(bind),现在我正在迁移到 Room 以实现持久性。我已按照 Florina's Blog 中提到的步骤进行操作房间

当我删除房间依赖项时,我的代码构建良好,没有 java 代码错误或 BR 相关错误

 annotationProcessor 'android.arch.persistence.room:compiler:1.0.0'

及其运行,但给出运行时异常,表示 database_Impl 不存在。因为它无法生成那个文件。

但是当我把 Annotation processor 放回去之后,它给了我

 Error:(29, 37) error: cannot find symbol class BR

我使用的gradle插件是com.android.tools.build:gradle:3.0.1

他们俩似乎不能一起工作

到目前为止采取的步骤:

  1. 将 BaseObservable 更改为 Observable As suggested here
  2. 将 Android Studio 更新到 3.0.1
  3. 尝试使用 gradle 最新插件 canary 6
  4. 清除,清除缓存也完成了

有人用过 Room 和 Data 绑定(bind)吗?

最佳答案

经过 4 天的努力,我终于让我的代码正常运行了。解决步骤

数据绑定(bind)错误如错误:包 com.packagename.databinding 不存在错误:找不到符号类 CustomMainActivityBinding

应用程序gradle必须添加以下代码才能查看默认出现的100多个错误

allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xmaxerrs" << "4000"
options.compilerArgs << "-Xmaxwarns" << "4000"
}
}
}

数据绑定(bind)和 Room 架构组件的 Gradle 依赖项

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'

注意:Gradle插件版本为3.0.1

我更改了所有 VM 以实现 Observable 并调用

registry.notifyChange(this, BR.bar);

在通知更改的情况下并实现覆盖的方法

@Override
public void addOnPropertyChangedCallback(OnPropertyChangedCallback
callback) {
registry.add(callback);
}

@Override
public void removeOnPropertyChangedCallback(
OnPropertyChangedCallback callback) {
registry.remove(callback);
}

这些东西使我的代码得以构建,但是当我解决了与 Room 查询相关的错误时,它无一异常(exception)地运行。这是主要原因,代码正在构建但未运行。当我再次重建我的项目时,我可以看到这些错误。

更新:

Android studio 3.1.3 之后,Message 窗口消失了,现在所有构建错误都出现在 Build View 。虽然有可用的切换来获取错误的 TextView 响应,但对于数据绑定(bind)错误,这还不够。

对我有帮助的解决方案:

  1. 在 Command promt/Terminal 中导航到项目根目录。
  2. 运行此命令“./gradlew build --stacktrace”如果是 Mac 或“.\gradlewbuild --stacktrace"如果是 Windows。
  3. 现在搜索“error:”标签,编译时错误就会出现。

我无法在 IDE 中得到这些错误。

关于android - 具有数据绑定(bind)的房间注释处理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48356496/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com