在我通过gradle分发库之后,我在库模块中创建的BindingAdapter不是来自任何app模块的accessbiel

时间:2017-03-24 02:02:13

标签: android data-binding android-databinding android-binding-adapter

我最近创建了一个库,并在其中创建了一个BindingAdapter,它在某种程度上就像下面一样(只需在TextView上装饰文本)。

@BindingAdapter({"decorateText"})
public static void decorateText(final View view, String text) {
    ((TextView)view).setText("<<<" + text + ">>>");
}

可以从同一Android Studio项目中的app模块访问此BindingAdapter,如下所示

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:decorateText="@{`Buy Now`}"/>

但是在我通过jcenter分发库并通过gradle从其他应用程序项目导入库之后,我无法使用"app:decorateText"标记。

我收到了以下错误。

No resource identifier found for attribute ‘decorateText' in package 'com.goldrushcomputing.myapplication'

我可以从应用程序中调用此库的公共方法,因此库看起来可以正确导入到项目中。

是否有任何技巧可以从应用程序模块访问库中的BindingAdapter,还是不可能?

1 个答案:

答案 0 :(得分:0)

确保添加了

dataBinding {
    enabled = true
}

到库模块的.gradle文件。