在module中依赖butterknife,报错"attribute value must be constant"

如何在module中使用butterknife
在工程里新建了一个module,在该module依赖了butterknife,但是运行时报错"attribute value must be constant",去github官网上查了下,https://github.com/JakeWharton/butterknife。
原来如果在子模块中依赖的话,dependence需要修改,
在项目的工程gradle里添加

dependencies { classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.1' }

在module的gradle顶部添加
apply plugin: 'com.jakewharton.butterknife'

最后别忘了rebuild project,然后在module中,把R.id都替换成R2.id。
在子模块中点击事件onClick无法工作
刚解决完在子模块中使用的问题,马上又踩入另一个坑,onClick无法工作,按常规写法
@OnClick({R2.id.btn_search, R2.id.btn_add, R2.id.btn_delete, R2.id.btn_update}) public void onViewClicked(View view) { switch (view.getId()) { case R2.id.btn_search: break; case R2.id.btn_add: break; case R2.id.btn_delete: break; case R2.id.btn_update: break; } }

发现点击时无法进入到case里,打印后发现view.getId和R2.id对不上,非常神奇,但是无可奈何。
在github上找了半天,有不少类似案例 https://github.com/JakeWharton/butterknife/issues/762
均未找到合适的解决办法,最后不得已,把onViewClicked方法拆分成
@OnClick({R2.id.btn_search}) public void onSearchClicked(View view) { }@OnClick({R2.id.btn_add}) public void onAddClicked(View view) { }@OnClick({R2.id.btn_delete}) public void onDeleteClicked(View view) { }@OnClick({R2.id.btn_update}) public void onUpdateClicked(View view) { }

【在module中依赖butterknife,报错"attribute value must be constant"】至少可以跑通了。

    推荐阅读