Cannot find the setter for attribute with parameter

Ravi picture Ravi · Oct 22, 2016 · Viewed 37.1k times · Source

I am working on DataBinding with BindingAdapter. Here is my custom method.

@BindingAdapter("{bind:fadevisible}")
public static void setFadeVisible(LinearLayout view, int visible) {
    Log.e("Bindings", "setFadeVisible: ");
}

And in xml file i am calling it like

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:fadevisible="@{1}"/>

But it is showing error

Error:Execution failed for task ':app:compileDebugJavaWithJavac'. java.lang.RuntimeException: Found data binding errors. ****/ data binding error ****msg:Cannot find the setter for attribute 'app:fadevisible' with parameter type int on android.widget.LinearLayout. file:\app\src\main\res-main\layout\activity_detail.xml loc:236:31 - 236:54 ****\ data binding error ****

I have checked this and this thread but somehow it is not helping me, as you can see i am passing int from xml and in BindingAdapter also i have mentioned LinearLayout with int value.

Even i have another method, where just parameters are different and its working fine

@BindingAdapter({"bind:image_round"}) 
public static void loadRoundImage(ImageView imageView, String url)

Answer

Kishan Solanki picture Kishan Solanki · Jul 10, 2019

Make sure in app level gradle, you have apply plugin: 'kotlin-kapt'