Android Studio-生成的绑定类在包中找不到符号

时间:2019-02-19 22:10:35

标签: android

我已经在主命名空间(com.company.product.Model)下设置了一个程序包以包含我的模型,并且正在使用数据绑定。当生成数据绑定类时,我收到一条错误消息,指出它找不到符号(这是我为模型设置的包)。如果我将模型移到com.company.product包中,则所有文件都会编译并运行。返回到com.company.product.Model,并返回相同的错误。我所做的所有搜索都指向XML文件的命名,从而可以在gradle中进行数据绑定。也没有完成整个清理,重建,重启的事情。我确定我很想念这是一个愚蠢的事情,但是可以用另一双眼睛。

包装结构:

  • com.company.product;
  • com.company.product.Model; (不确定大小写是否与此有关)

生成的绑定类:

package com.company.product.databinding;

import android.databinding.Bindable;
import android.databinding.DataBindingComponent;
import android.databinding.DataBindingUtil;
import android.databinding.ViewDataBinding;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;
import com.company.product.Model;

public abstract class TimesheetEntryBinding extends ViewDataBinding {
  @NonNull
  public final EditText hoursText1;

  @NonNull
  public final EditText hoursText2;

  @NonNull
  public final EditText hoursText3;

  @NonNull
  public final EditText hoursText4;

  @NonNull
  public final EditText hoursText5;

  @NonNull
  public final EditText hoursText6;

  @NonNull
  public final EditText hoursText7;

  @NonNull
  public final TextView projectNameText;

  @Bindable
  protected Model.TimesheetEntry mEntry;

  protected TimesheetEntryBinding(DataBindingComponent _bindingComponent, View _root,
      int _localFieldCount, EditText hoursText1, EditText hoursText2, EditText hoursText3,
      EditText hoursText4, EditText hoursText5, EditText hoursText6, EditText hoursText7,
      TextView projectNameText) {
    super(_bindingComponent, _root, _localFieldCount);
    this.hoursText1 = hoursText1;
    this.hoursText2 = hoursText2;
    this.hoursText3 = hoursText3;
    this.hoursText4 = hoursText4;
    this.hoursText5 = hoursText5;
    this.hoursText6 = hoursText6;
    this.hoursText7 = hoursText7;
    this.projectNameText = projectNameText;
  }

  public abstract void setEntry(@Nullable Model.TimesheetEntry entry);

  @Nullable
  public Model.TimesheetEntry getEntry() {
    return mEntry;
  }

  @NonNull
  public static TimesheetEntryBinding inflate(@NonNull LayoutInflater inflater,
      @Nullable ViewGroup root, boolean attachToRoot) {
    return inflate(inflater, root, attachToRoot, DataBindingUtil.getDefaultComponent());
  }

  @NonNull
  public static TimesheetEntryBinding inflate(@NonNull LayoutInflater inflater,
      @Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent component) {
    return DataBindingUtil.<TimesheetEntryBinding>inflate(inflater, com.company.product.R.layout.timeentry_item, root, attachToRoot, component);
  }

  @NonNull
  public static TimesheetEntryBinding inflate(@NonNull LayoutInflater inflater) {
    return inflate(inflater, DataBindingUtil.getDefaultComponent());
  }

  @NonNull
  public static TimesheetEntryBinding inflate(@NonNull LayoutInflater inflater,
      @Nullable DataBindingComponent component) {
    return DataBindingUtil.<TimesheetEntryBinding>inflate(inflater, com.company.product.R.layout.timeentry_item, null, false, component);
  }

  public static TimesheetEntryBinding bind(@NonNull View view) {
    return bind(view, DataBindingUtil.getDefaultComponent());
  }

  public static TimesheetEntryBinding bind(@NonNull View view,
      @Nullable DataBindingComponent component) {
    return (TimesheetEntryBinding)bind(component, view, com.company.product.R.layout.timeentry_item);
  }
}

这是xml

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <data class="TimesheetEntryBinding">
        <import type="android.view.View"/>
        <variable
            name="entry"
            type="com.company.product.Model.TimesheetEntry" />
    </data>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/projectNameText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@{entry.projectName}" />

        <HorizontalScrollView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent">
                <EditText
                    android:id="@+id/hoursText1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:width="@dimen/time_timeEntryWidth"
                    android:ems="10"
                    android:inputType="numberDecimal"
                    android:text="" />
                <EditText
                    android:id="@+id/hoursText2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:width="@dimen/time_timeEntryWidth"
                    android:ems="10"
                    android:inputType="numberDecimal"
                    android:text="" />
                <EditText
                    android:id="@+id/hoursText3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:width="@dimen/time_timeEntryWidth"
                    android:ems="10"
                    android:inputType="numberDecimal"
                    android:text="" />
                <EditText
                    android:id="@+id/hoursText4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:width="@dimen/time_timeEntryWidth"
                    android:ems="10"
                    android:inputType="numberDecimal"
                    android:text="" />
                <EditText
                    android:id="@+id/hoursText5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:width="@dimen/time_timeEntryWidth"
                    android:ems="10"
                    android:inputType="numberDecimal"
                    android:text="" />
                <EditText
                    android:id="@+id/hoursText6"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:width="@dimen/time_timeEntryWidth"
                    android:ems="10"
                    android:inputType="numberDecimal"
                    android:text="" />
                <EditText
                    android:id="@+id/hoursText7"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:width="@dimen/time_timeEntryWidth"
                    android:ems="10"
                    android:inputType="numberDecimal"
                    android:text="" />
            </LinearLayout>
        </HorizontalScrollView>
    </LinearLayout>
</layout>

1 个答案:

答案 0 :(得分:1)

我从这篇帖子Data binding "error: cannot find symbol class Models"中发现自己在做错什么。

我将包命名为“ Model”,而不是“ model”。一旦重构,就建立了数据绑定类。