【问题标题】:Can not create simple databinding无法创建简单的数据绑定
【发布时间】:2016-03-21 06:33:19
【问题描述】:

我在 Android Studio 中创建了 Emtpy 项目。接下来我将classpath 'com.android.databinding:dataBinder:1.0-rc2' 添加到我的项目的build.gradle 并将布局更改为:

<?xml version="1.0" encoding="utf-8"?>

<layout xmlns:android="http://schemas.android.com/apk/res/android">

    <data>
       <variable
          name="dataSource"
          type="com.example.demas.db1.DataSource" />
    </data>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.example.demas.db1.MainActivity">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello World!" />
    </RelativeLayout>
</layout>

现在我无法构建应用程序并出现错误:

03-21 02:19:31.692 6822-6822/com.example.demas.db1 E/AndroidRuntime: FATAL EXCEPTION: main
                                                                     Process: com.example.demas.db1, PID: 6822
                                                                     java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.demas.db1/com.example.demas.db1.MainActivity}: android.view.InflateException: Binary XML file line #3: Binary XML file line #3: Error inflating class layout
                                                                         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)

这是我的 DataSource 类:

package com.example.demas.db1;

public class DataSource {
    private String name;

    public static DataSource get(String name) {
        return new DataSource(name);
    }

    public DataSource(String name) {
        this.name = name;
    }

    public String getMessage() {
        return String.format("Hello, %s!", name);
    }

}

我该如何解决?

【问题讨论】:

  • 您需要使用从包名到xml中的类名的完整路径,,还需要在顶部添加架构使用自定义标签。
  • 我在变量和相对布局中有完整的包名(我已经更新了我的问题)。或者你的意思是不同的?
  • 添加这个&lt;layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context="com.example.demas.db1.DataSource"&gt;
  • classpath 'com.android.databinding:dataBinder:1.0-rc1'怎么样
  • @IntelliJAmiya,我已经尝试了你的两个建议,但没有帮助

标签: android data-binding


【解决方案1】:

我已通过从 RelativeLayout 中删除 tools:context="com.example.demas.db1.MainActivity" 来修复错误

【讨论】:

  • 哦嗬。我当时想。很高兴听到你解决了它。继续前进。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多