【问题标题】:Android DataBindingClasses are not updating immediatelyAndroid DataBindingClasses 不会立即更新
【发布时间】:2018-09-13 10:06:41
【问题描述】:

问题:

我正在开发一个集成了 dataBinding 的项目,每当我创建新布局或将视图添加到现有布局时,它就不会出现在绑定对象中,我什至尝试重建和清理项目,但它没有'不起作用,我必须重新启动项目或重命名布局文件一两次以更新 BindingClass。这太烦人了,占用了我重要的时间。

代码

build.grade

dataBinding {
    enabled = true
}

layout_file

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">

    <RelativeLayout
        android:id="@+id/lyt_parent"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <View android:id="@+id/old_view_1" .../>
        <View android:id="@+id/old_view_2" .../>    

        <!-- New View -->
        <View android:id="@+id/new_view" .../>
    </RelativeLayout>
</layout>

Activity/Fragment/使用布局的地方

LayoutFileBinding binding = DataBindingUtil.setContentView(this, R.layout.layout_file);
binding.newView  
// here I get error cannot resolve (newView) until i restart project or rename layout file 

【问题讨论】:

  • 除非你重建项目,否则它不会,因为这就是 Code generation 的工作原理。你知道如何重建项目吗? @Umer Khan
  • 你可以rebuild项目或close项目和re-open
  • 只需Rebuild Project,您无需重新启动项目。
  • 您是否尝试过使缓存无效?文件 -» 使缓存无效/重新启动
  • @UmerKhan 再次同步您的项目

标签: android layout data-binding android-databinding


【解决方案1】:

Data binding和平台支持还不是很成熟,我用数据绑定很久了,IDE相关的问题都解决了,不过你的问题也经常发生在我身上。

对我来说最快的解决方法是

  • 文件 > 关闭项目
  • 从最近打开

这需要将近 5 秒。并生成所有新添加的字段和布局绑定类。

比 Rebuild 或 Restart AS 更快。

【讨论】:

    猜你喜欢
    • 2018-11-08
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 2021-11-07
    相关资源
    最近更新 更多