butterknife的一个bug
在使用butterknife的时候,会碰到这么一个错误:
Required view XXX for method ‘onClick’ was not found. If this view is optional add ‘@Nullable’ (fields) or ‘@Optional’ (methods) annotation.
emmm…这个view找不到?
百度之,发现99%的文章都是按照字面意思处理的(我就是这1%,哈哈哈)
字面意思是,让你在出错的地方添加注解,防止报错。
在变量的地方添加@Nullable,在方法的地方添加@Optional。
你以为这就完了?你不想想么 这么出名的框架,哪能这么简单就出错??
重点落在第一句,view没找到,怎么会找不到呢?!
全局搜索这个id,发现在另一个界面也有这个id的onClick事件,但是他的xml里面并没有这个id的view!!
在另一个界面,既然没有这个view,也就不会有他的onClick,删除之!
rebuild,run!
你看,不报错了吧!!
这其实不是butterknife的bug,就是写代码不仔细,出了问题。
再举个栗子,我自己经常犯的。
如果需要界面加长按事件,我一般都会直接复制点击事件,改一下id和逻辑就直接运行了。
结果当然是报错了,原来点击事件要求方法返回void,但是长按事件要求方法返回boolean。
你看,多么low的错误。
其实有时候挺烦注解这东西,使用是简单了,但是一旦出了错,那太难追溯问题所在了。