【发布时间】: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">
奇怪的是约束布局是根元素。我曾认为<layout> 必须是根元素,并且需要与根UI 布局内容具有<data> 同级元素,才能正确生成Binding 类。不过,我可能误解了那部分。
有没有一种方法可以强制构建或生成代码以使用 androidX?
或者,如果有人对导致问题的原因有任何澄清信息,我将非常感激。
【问题讨论】:
-
似乎需要更新库以使用提供的 ConstraintLayout 或仅使用 Android X 本身:/ 似乎您无权访问源代码,所以请他们更新它! :)
-
@MartinMarconcini 这就是我最初的想法,但
FragmentChatListBinding类实际上是生成的代码。所以我相信他们实际上并没有编写 android studio 编写的那个类。
标签: android android-constraintlayout android-databinding androidx