【问题标题】:How to force library to use androidX constraintlayout instead of android.support constraintlayout如何强制库使用 androidX constraintlayout 而不是 android.support constraintlayout
【发布时间】:2019-04-06 23:57:59
【问题描述】:

我正在实现 Android Layer-xdk library,但遇到了一些障碍。构建时出现以下错误:

error: cannot find symbol public final android.support.constraint.ConstraintLayout root;

该错误是由层库中生成的名为XdkUiMessageModelVhDefaultVBinding.java的类引起的

这是导致错误的行:

public final android.support.constraint.ConstraintLayout root;

如果您将鼠标悬停在红色的 ConstraintLayout 上,它会显示“无法解析符号 ConstraintLayout”。

这个类是Android数据绑定库从xmlxdk_ui_message_model_vh_default.xml生成的

使用 androidX 约束布局

<androidx.constraintlayout.widget.ConstraintLayout
    android:id="@+id/root"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginEnd="@dimen/xdk_ui_message_model_vh_avatar_padding"
    android:layout_marginLeft="@dimen/xdk_ui_message_model_vh_avatar_padding"
    android:layout_marginRight="@dimen/xdk_ui_message_model_vh_avatar_padding"
    android:layout_marginStart="@dimen/xdk_ui_message_model_vh_avatar_padding"
    android:layout_marginTop="@dimen/xdk_ui_message_model_vh_padding"
    android:layout_marginBottom="@dimen/xdk_ui_message_model_vh_padding"
    android:duplicateParentState="true" android:tag="layout/xdk_ui_message_model_vh_default_0" 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">

奇怪的是约束布局是根元素。我曾认为&lt;layout&gt; 必须是根元素,并且需要与根UI 布局内容具有&lt;data&gt; 同级元素,才能正确生成Binding 类。不过,我可能误解了那部分。

有没有一种方法可以强制构建或生成代码以使用 androidX?

或者,如果有人对导致问题的原因有任何澄清信息,我将非常感激。

【问题讨论】:

  • 似乎需要更新库以使用提供的 ConstraintLayout 或仅使用 Android X 本身:/ 似乎您无权访问源代码,所以请他们更新它! :)
  • @MartinMarconcini 这就是我最初的想法,但FragmentChatListBinding 类实际上是生成的代码。所以我相信他们实际上并没有编写 android studio 编写的那个类。

标签: android android-constraintlayout android-databinding androidx


【解决方案1】:

我相信,如果您将这两行添加到您的 gradle.properties 文件中,AS 将为您解决兼容性问题并使库与您的代码一起工作,无论它们是否使用 androidx。

android.useAndroidX=true
android.enableJetifier=true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-27
    • 2019-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    相关资源
    最近更新 更多