Open alwaystest opened 8 years ago
标签(空格分隔): Android ButterKnife
幸运,2016.7.10 发布的ButterKnife8.2.0 支持了Library Project(Android Studio 中的Module)中使用ButterKnife。解决了燃眉之急。
使用方法参考:
刚接触的时候有些懵,各种编译错误。
刚开始使用的还是ButterKnife 7.0.1
升级了最新的Android Studio顺便发现ADT 14以上对于Library Project生成的R文件的id不再是final的了(参考)。所以这种工程里面的switch-case不再支持R.id.*。解决了switch-case的错误以后,依然有许多地方报错,@Bind(R.id.***)报错,必须为常量表达式。没见过呀。之前一直都是这么用的。
R.id.*
@Bind(R.id.***)
查了半天资料,发现原来还是由于上面的原因导致报这个错。
搜索到一个ButterKnife的Fork库支持Library Project。然后看到说明,ButterKnife 8.2.0支持这个特性了。马上根据说明修改。
实践之后才弄明白一下几点:
classpath 'com.jakewharton:butterknife-gradle-plugin:8.2.1'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
apply plugin: 'com.jakewharton.butterknife'
apply plugin: 'com.neenbedankt.android-apt'
dependencies
compile 'com.jakewharton:butterknife:8.2.1'
apt 'com.jakewharton:butterknife-compiler:8.2.1'
R.id.***
R2.id.***
然后就可以正常编译运行了。
Thanks you , very thanks.
想要把使用butterknife的project编译为library还是会遇到问题啊
比如呢? @wwangaz
怎么找不到unbind方法啊。。。。有bind方法。。。
@cheetah747 看下ButterKnife的版本号
Android Library Project和 ButterKnife 8.2.+
标签(空格分隔): Android ButterKnife
幸运,2016.7.10 发布的ButterKnife8.2.0 支持了Library Project(Android Studio 中的Module)中使用ButterKnife。解决了燃眉之急。
使用方法参考:
刚接触的时候有些懵,各种编译错误。
刚开始使用的还是ButterKnife 7.0.1
升级了最新的Android Studio顺便发现ADT 14以上对于Library Project生成的R文件的id不再是final的了(参考)。所以这种工程里面的switch-case不再支持
R.id.*
。解决了switch-case的错误以后,依然有许多地方报错,@Bind(R.id.***)
报错,必须为常量表达式。没见过呀。之前一直都是这么用的。查了半天资料,发现原来还是由于上面的原因导致报这个错。
搜索到一个ButterKnife的Fork库支持Library Project。然后看到说明,ButterKnife 8.2.0支持这个特性了。马上根据说明修改。
实践之后才弄明白一下几点:
classpath 'com.jakewharton:butterknife-gradle-plugin:8.2.1'
并且classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
是要保留下来的。apply plugin: 'com.jakewharton.butterknife'
,同时apply plugin: 'com.neenbedankt.android-apt'
要保留。dependencies
中添加compile 'com.jakewharton:butterknife:8.2.1'
和apt 'com.jakewharton:butterknife-compiler:8.2.1'
。R.id.***
更换为R2.id.***
。同时其他地方的R.id.***
是需要保留的。然后就可以正常编译运行了。