【问题标题】:Android Studio 2.2 Databinding errorAndroid Studio 2.2 数据绑定错误
【发布时间】:2017-01-28 16:30:06
【问题描述】:

我刚刚将 Android Studio 更新为 2.2,将 Gradle 插件更新为 2.2.0,当使用 DataBinding 初始化视图时,我在项目中收到以下错误。它说Type T has incompatible upper bounds。 Android Studio 没有提供有关如何解决此问题的建议。将绑定强制转换为确切的类并不能解决问题。

虽然它仍然可以编译和运行,但是项目充满了红色错误 - 每个DataBinding 初始化都有一个错误。有什么想法吗?

【问题讨论】:

  • 如果你从DataBindingUtil切换到你生成的绑定类(看起来应该是FragmentTimelineOverlayBinding),你会得到更好的结果吗?
  • @CommonsWare 不太好,似乎参数不符合预期(LayoutIflater, ViewGroup, int, DataBindingComponent)
  • 您应该在FragmentTimelineOverlayBinding 上有一个三参数inflate() 方法作为选项。我刚刚在 AS 2.2 中使用 Android Plugin for Gradle 2.2.0 启动了我的一本书示例,RowBinding.inflate(getActivity().getLayoutInflater(), parent, false) 被识别并编译(我的布局是row.xml)。
  • 使用 3 参数 inflate() 覆盖可解决错误。我想我会在项目中的任何地方更改它。
  • 请提交针对 Android Studio 的错误。

标签: android android-studio gradle data-binding android-gradle-plugin


【解决方案1】:

我的项目正在运行。

   private LoadImageByPicassoBinding mBinding;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        //mBinding = LoadImageByPicassoBinding.inflate(inflater, container, false);
        mBinding = DataBindingUtil.inflate(inflater, R.layout.load_image_by_picasso, container, false);
        return mBinding.getRoot();
    }

【讨论】:

    【解决方案2】:
    1. 打开 gradle-wrapper.properties
    2. 更新distributionUrl https://services.gradle.org/distributions/gradle-3.1-all.zip
    3. 文件->使缓存无效/重新启动
    4. 无效并重新启动

    【讨论】:

    • 只需执行第 3 步就为我解决了所有问题。 +1,谢谢!如果您编辑答案以删除前两个步骤,我会接受。
    • 不适合我:启动时“找不到符号类 BR”
    【解决方案3】:

    使用 Android Studio 2.2 - 我必须执行 Maksim 的解决方案 + 在终端中执行 ./gradlew 以使 .gradle 目录拉取 3.1 gradle 版本以使一切正常。

    【讨论】:

      猜你喜欢
      • 2016-09-19
      • 1970-01-01
      • 2016-09-17
      • 2018-04-13
      • 1970-01-01
      • 1970-01-01
      • 2012-06-09
      • 1970-01-01
      • 2017-02-09
      相关资源
      最近更新 更多