Gradle:未指定资源类型(在“text”处,值为“@{user.name}”)。数据绑定不起作用

2024-03-15

我试图将适当的数据绑定功能添加到我的项目中,但由于某种原因它仍然失败。

build.gradle文件看起来像这样:

apply plugin: 'com.android.application'

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'me.tatarka:gradle-retrolambda:3.2.5'
    }
}

repositories {
    mavenCentral()
}

apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'

android {

    compileSdkVersion 23
    buildToolsVersion "24.0.0 rc4"

    defaultConfig {
        applicationId "boilerplate"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    dataBinding {
        enabled = true
    }

}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:design:23.4.0'
    compile 'io.reactivex:rxandroid:1.2.0'
    compile 'io.reactivex:rxjava:1.1.5'
    compile 'com.jakewharton.rxbinding:rxbinding:0.4.0'
}

布局文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">

    <data>
        <variable name="user" type="boilerplate.UserModel"/>
    </data>

    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Test"
            android:id="@+id/btn2"
            android:onClick="OnBtnClick7"
            android:layout_below="@+id/editText3"
            android:layout_alignRight="@+id/editText3"
            android:layout_alignEnd="@+id/editText3"/>

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:text="@{user.name}"
        android:ems="10"
        android:id="@+id/editText"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"/>

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textEmailAddress"
        android:ems="10"
        android:id="@+id/editText2"
        android:layout_below="@+id/editText"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:text="@{user.email}"/>

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:ems="10"
        android:id="@+id/editText3"
        android:layout_below="@+id/editText2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:text="@{user.password}"/>
</LinearLayout>

但是当尝试构建代码时,我遇到了以下错误:

Error:(23, 34) Gradle: No resource type specified (at 'text' with value '@{user.name}'). Error:(38, 35) Gradle: No resource type specified (at 'text' with value '@{user.email}'). Error:(49, 38) Gradle: No resource type specified (at 'text' with value '@{user.password}').

我应该怎么做才能解决这个问题?


这不是布局文件的正确结构。对于数据绑定布局文件:

  • 根元素是<layout> (not <LinearLayout>)
  • The <layout>有一个孩子<data>元素,类似于你的
  • 您的意见请遵循<data>元素作为子元素<layout>

例如,在这个示例项目 https://github.com/commonsguy/cw-omnibus/tree/master/DataBinding/Basic, 我有:

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

  <data>

    <variable
      name="item"
      type="com.commonsware.android.databind.basic.Item"/>
  </data>

  <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <ImageView
      android:id="@+id/icon"
      android:layout_width="@dimen/icon"
      android:layout_height="@dimen/icon"
      android:layout_gravity="center_vertical"
      android:contentDescription="@string/icon"
      android:padding="8dip"/>

    <TextView
      android:id="@+id/title"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_gravity="left|center_vertical"
      android:text="@{item.title}"
      android:textSize="20sp"/>

  </LinearLayout>
</layout>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gradle:未指定资源类型(在“text”处,值为“@{user.name}”)。数据绑定不起作用 的相关文章

随机推荐

  • 是否可以在不使用 ApplicationContextAware 的情况下检索具有原型范围的 Spring bean

    使用Spring 3 1 如果我想检索具有原型范围的 bean 即我每次都想要该类的不同实例 是否可以在不使用 ApplicationContextaware 类的情况下检索该 bean 这就是我目前的做法 Component Qualif
  • ModuleNotFoundError:没有名为“建模”的模块

    我对深度学习和 python 非常陌生 我正在尝试重新创建该项目https github com Nagakiran1 Extending Google BERT as Question and Answering model and Ch
  • 能否阻止单个应用程序的 Microsoft 错误报告?

    我们有一个非托管 C 应用程序 它利用第 3 方 API 来读取 CAD 文件 对于某些损坏的 CAD 文件 第 3 方库崩溃并导致我们的 EXE 崩溃 因此 我们的主应用程序是一个单独的 EXE 这样它就不会受到崩溃的影响 然而 我们最终
  • 使用 java POI 插入表时 Open Office writer 崩溃

    我正在尝试使用 open office 使用 apache poi 以 docx 格式插入表 但是每次打开文件时文件都会崩溃 XWPFDocument document new XWPFDocument FileOutputStream o
  • 单击浏览器的后退按钮时重定向到特定页面

    这是一个有点菜鸟的问题 但事实就是这样 我有一个网站 用户只能通过下一页和后退按钮从一个页面导航到另一个页面 即有一个用户必须遵循的向导 向导的一部分包含不同的页面 一部分包含相同的页面但具有更改的 div 但从用户体验来看 它是不同的页面
  • Stream_Copy_To_Stream() 的替代方案 php

    我现在正在开发一个文件共享网站 遇到了一个小问题 我正在使用上传脚本 uploadify 它工作得很好 但如果用户想要 我希望上传的文件被加密 现在我有可以执行此操作的工作代码 如下所示 但我的服务器只有 1GB 或内存 并且使用strea
  • 如何在 WooCommerce 3+ 中进行调试

    我正在使用本教程为 Woocommerce 创建自定义运输方法https docs woocommerce com document shipping method api https docs woocommerce com docume
  • 如何“重置”给定 HTML 元素的样式?

    我正在开发一个可嵌入的 javascript 它将 HTML 元素插入未知页面 我无法控制要插入 HTML 的页面的样式表 问题是我插入的 HTML 会被页面错误地风格化 我想防止这种情况发生 确保我插入的元素是最不冗长和 或资源密集的ex
  • 使用 pd.read_clipboard 复制多索引数据帧?

    Given a 像这样的数据框 https stackoverflow com questions 17921010 how to query multiindex index columns values in pandas C A B
  • Swift Codable:使用未知键解码字典

    Codable当您了解 JSON 数据的关键格式时 这会非常有用 但是如果您不知道密钥怎么办 我目前面临这个问题 通常我希望 JSON 数据像这样返回 id lt 123 gt data id
  • 如何用颜色填充位图对象中的封闭区域

    给区域内的点赋予颜色来填充区域 类似于油漆桶功能中的 绘图 这 NET Framework 中 没有直接的等效项 但我希望使用 C 来做到这一点 是否可以 这是一个非常简单的洪水填充算法 应该可以帮助您入门 void Form1 Paint
  • 在不知道父元素的情况下访问多维数组元素

    我有返回以下多维数组的函数 我无法控制数组的形成方式 我正在尝试访问 结果 元素 这个问题是 父元素的名称不断变化 Result 元素的位置始终相同 因为名称为 Result 是否可以在不知道父元素名称的情况下访问该元素 Array sHe
  • UITableViewCell 异步加载图像问题 - Swift

    在我的应用程序中 我构建了自己的异步图像加载类 我传入一个对象 然后它检查缓存 NSCache 是否有图像 如果没有 它将检查文件系统是否已保存图像 如果图像尚未保存 它将在后台下载图像 NSOperations 帮助 到目前为止 效果很好
  • 带和不带 ( ) 的构造函数调用之间的区别

    我是 C 初学者 想了解为什么 return std list
  • Netbeans 7.1 和 python

    我曾经使用 Netbeans 6 9 进行 Python 开发 以及 Java 和 PHP 我有一个很酷的 PHP 调试器 带有 xDebug 还有良好的 Python 支持 没有任何抱怨 我搬到另一台计算机下载了最新的 netbeans
  • 相当于“Dim As String * 1”VB6 到 VB.NET

    我有一些VB6代码需要迁移到VB NET 我想询问一下这行代码 看看是否有办法在 NET中实现它 Dim strChar1 As String 1 智能感知不断告诉我声明即将结束 这就是所谓的 固定长度 字符串 VB NET 中没有完全等效
  • Java中通过Proxy发送SOAP消息

    我需要知道如何设置代理并确认它正在工作 我制作了一个如下所示的测试程序 您可以在其中指定代理地址和端口号 我在以下位置找到了地址和端口 http www freeproxylists net http www freeproxylists
  • MongoDB:查找字段名称以以下开头的对象

    查询 MongoDB 从给定的集合 参见下面的示例 中 我只需要列出包含字段的对象 其中字段名称以 need 开头 包含三个对象的集合示例 1 id 1 need some A need more 1 website id 12345678
  • 从网络加载(并显示).XIB

    我希望能够下载 通过 NSURLConnection 请求 XIB 文件 并将其呈现在视图中 我已经实现了 NSURLConnection 当然 当连接完成时 我留下了一个代表 XIB 文件的 XML 数据的 NSString 示例 只是许
  • Gradle:未指定资源类型(在“text”处,值为“@{user.name}”)。数据绑定不起作用

    我试图将适当的数据绑定功能添加到我的项目中 但由于某种原因它仍然失败 build gradle文件看起来像这样 apply plugin com android application buildscript repositories ma