1. 程式人生 > >解決android4.4的bug NoSuchMethodException View.onClick

解決android4.4的bug NoSuchMethodException View.onClick

Android 4.4版本 xml中的onClick屬性不相容support庫。

使用者反饋崩潰,用自己手機測試沒有問題,在優測上找了一臺相同版本的手機測試,還真找到了問題,View.onClick方法拋NoSuchMethod方法,當時就很奇怪,怎麼會找不到onClick方法呢,我又去看了bugly上面的這個方法,搜尋出來,全是android 4.4的手機。這裡寫圖片描述
我仔細檢查程式碼,崩潰的地方時使用了AppCompatCheckBox,,我並沒有設定onClick方法,為什麼會崩潰呢,仔細檢查之後發現,是在xml中定義的style,引入了onClick屬性,檢視checkbox原始碼,checkbox在setCheck()之後會呼叫performClick(),呼叫onClick方法。在StackOverflow上找到原因,是xml中的onClick不相容support庫

AppCompatButton android:onClick Could not find a method exception
以及這個bugtracker(https://issuetracker.google.com/issues/37108938)
最後去掉xml中的onClick屬性,執行測試就沒有問題了。
引用原話

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.


感謝前輩們,努力前行!