ButterKnife 开源库的使用
吐嘈
今天使用ButterKnife开源库真是困难,
第一个错误:我自己都想打死自己,把butter改写成了Buffer,然后怎么怎么Gradle都通不过,最后才发现!
第二个错误:在添加依赖库时,有这个一名话annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
,Gradle说不认识这个关键字,我就去Stackoverflow找了找,还真找到了,说是在设置中将Annotation Processor选项勾选就好了,赶紧设置。终于可以sync了,但是,还没完。
第三个不知道是不是错误:在app模块的build.gradle文件中,官方文档上说要加一句apply plugin: 'com.android.library'
,我只要一加上,就sync不通过,去掉了就能了,不知道是怎么回事??
第四个错误:好不容易sync成功了,兴高采烈去运行,直接失败,说是BindView连接的控件是一个空指针,不就是没有连接成功吗!!又去排查问题,终于,发现自己没有加在onCreate函数中加入这句ButterKnife.bind(this);
关键的话,我是瞎子吗!没有引用布局,怎么使用?然后再次运行,成功。。。
2017年3月14日,又犯了一次第四个错误!!真是太气人了。
最后,终于可以使用ButterKnife开源库成功,历时一下午加一晚上,真心对新手来说,太难了,一点都不懂Gradle,都不知道人家是干什么用的,报错也只能大概看懂。。要好好学习Java的注释!!
添加依赖
有两个文件需要配置,两个都叫build.gradle,不过,一个是对Project的配置,一个是对app模块的配置
build.gradle(project)
buildscrips {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.jakewharton:butterknife-gradle-plugin:8.5.1'
}
}
build.gradle(app)
apply plugin: 'com.android.library' //这句我一加就不能sync!!
apply plugin: 'com.jakewharton.butterknife'
...
dependencies {
compile 'com.jakewharton:butterknife:8.5.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
}
从理论上讲,添加完这几句话,就可以sync成功了,然后就可以在自己的类文件中使用注释来连接控件了,但是,要记得在使用注释之前,在onCreate函数有setContentView函数之后加一句butterknife.bind(this);
才行。。
就可以开始使用了。
本文只讲ButterKnife怎么配置,不说怎么使用。因为配置好了,才能自己去试验,只有自己的经验才是永远不会忘记的。