Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AppCompatButton android:onClick Could not find a method exception

I have this problem just on KitKat version, the rest from 16 API level to 25 works fine

the class that instantiates the layout have the method of the layout, example

<android.support.v7.widget.AppCompatButton
  android:onClick="onClick"
...
public void onClick(View v) {
  // do something
}

I know I can change this to listeners, databindings or use some library like Butterknife, but I'm interested in know why just crash on 4.X versions?

xml layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
        android:onClick="onClick" />

    <android.support.v7.widget.AppCompatButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
        android:onClick="onClick" />
</LinearLayout>
like image 661
rkmax Avatar asked Oct 18 '22 12:10

rkmax


1 Answers

I have found some explanation for this issue. It was filed as a bug. Here is the link to bug report. https://issuetracker.google.com/issues/37108938

In a gist, they say that the issue was fixed in API 24 and onClick is not compatible with support library. I have added a comment to the thread about kitkat issue.

like image 168
Sahil Patel Avatar answered Oct 29 '22 21:10

Sahil Patel