ButterKnife在lib中R2方式使用及配置

2019-01-17  本文已影响0人  落叶随风花落入泥

组件化开发时lib中使用ButterKnife插件View注入问题及解决方案

1、直接在lib中集成ButterKnife时候问题如下

使用的时候回报Attribute value must be constant,原因是:library中R.id.xxx 取R中变量的时候并非是final类型。

2、解决方案

配置ButterKnife

1.在全局的build.gradle中dependencies配置如下代码
 classpath 'com.jakewharton:butterknife-gradle-plugin:8.5.0',版本号可以根据自己依赖版本 
 决 定,不是唯一。

2.在lib build.gradle头部中添加如下代码:
apply plugin: 'com.jakewharton.butterknife'

3.在lib build.gradle 中添加如下依赖,版本根据自己依赖而定,不是唯一
 compile 'com.jakewharton:butterknife:8.8.1'
 annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

4.在lib中是使用ButterKnife ,手动把@bind中的R改成R2,这时候会报红,我们进行rebuild即 可。

注意点:library中switch-case的使用,在library中是不能使用switch- case 找id的,解决方法就是用if-else代替。


1547711506(1).png

使用switch-case会报错。
使用if-else还有一点注意。如图


1547711915(1).png

这样就解决了butterKnife在lib中使用的问题。

上一篇 下一篇

猜你喜欢

热点阅读