黄油刀butterknife在Library上的使用(元素值必须为常量表达式)
来源:互联网 发布:淘宝军刺暗语 编辑:程序博客网 时间:2024/06/04 18:26
相信大家都有使用butterknife来为代码节省时间,但是当把项目合并入其他项目,或者是作为一个Library依赖的时候会发现编译会报错。
控制台显示错误:元素值必须为常量表达式。为什么会这样?仔细查看发现在library中注解生成的R文件里是没有final标识的,正常是有的,导致识别不了R文件。好在butterknife在8.0之后提供了解决的办法
https://github.com/JakeWharton/butterknife
第一步: 在根gradle文件中添加
dependencies { classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' classpath 'com.jakewharton:butterknife-gradle-plugin:8.6.0' }
第二步:在需要使用R2的module的gradle中添加
apply plugin: 'com.android.library'
apply plugin: 'android-apt'
apply plugin: 'com.jakewharton.butterknife'
compile 'com.jakewharton:butterknife:8.6.0'apt 'com.jakewharton:butterknife-compiler:8.6.0'
然后在整个项目或者整个module中把 @BindView(R. 替换成@BindView(R2.
手动把 OnClick注解改成R2
//正确写法 @OnClick(R2.id.btn_login) public void onLogin(View view){}
还有这种多个点击事件写在一起的也要分开来,像下面这种就需要写成两个
//这样写会报错@OnClick({R2.id.back, R2.id.txt_bind_we_chat_btn, R2.id.txt_bind_phone_btn}) public void onClick(View view) { switch (view.getId()) { case R2.id.back: break; case R2.id.txt_bind_phone_btn: break; case R2.id.txt_bind_we_chat_btn: break; }}
还有Menu的点击事件 item.getId获取到的ID也是对不上的,可以用getTIttle()来解决
@Override public boolean onOptionsItemSelected(MenuItem item) { String tittle=item.getTitle().toString(); switch (tittle) { case "提交": onSubmit(); return true; case "退房": actionDel(); return true; case "修改": actionAlter(); return true; } return super.onOptionsItemSelected(item); }
如果觉得自己手动改很麻烦可以参考下面这位大神的做法
http://www.jianshu.com/p/a101cec2c960
记得要先绑定哦 ButterKnife.bin(this);
以上
阅读全文
2 0
- 黄油刀butterknife在Library上的使用(元素值必须为常量表达式)
- Android_ButterKnife元素值必须为常量表达式
- android studio中library使用butterknife(黄油刀)注解方法
- Android中ButterKnife(黄油刀)的详细使用
- 最新Android 黄油刀(Butterknife)的简单使用
- 黄油刀使用方法(butterknife)
- 注入式框架Butterknife(黄油刀)的使用
- Butterknife——黄油刀的基本使用
- 注入式框架Butterknife(黄油刀)的使用
- Butterknife(黄油刀使用)一分钟集成
- ButterKnife(黄油刀)的使用(Eclipse和Android Studio)
- Android Butterknife黄油刀的配置
- Android Studio 结合 ButterKnife Zelezny 高效使用 Butterknife(黄油刀)
- 【butterknife】butterknife:8.4.0 黄油刀使用详解。
- Android Butterknife(黄油刀) 使用方法总结
- Butterknife(黄油刀)简单用法
- butterknife----黄油刀
- 在 library 中使用 ButterKnife
- codeforce#420 E. Okabe and El Psy Kongroo(图论+矩阵快速幂)
- Linux Audio Stack & ALSA
- linux系统编程之管道(一):匿名管道(pipe)
- Unhandled exception in ***.exe(OLE32.DLL):0xC0000005:Access Violation
- Git教程5——远程仓库
- 黄油刀butterknife在Library上的使用(元素值必须为常量表达式)
- DB2 的REORG_学习(4)_表和索引重组的分析
- 分支定界法——0-1背包问题
- openldap 镜像同步慢的问题解决
- 和Postgresql系统监控有关的几个标准统计视图
- hibernate的dao层
- Yii2 Pjax 使用
- UE4 本地化文本语言修改
- linux系统编程之管道(二):管道读写规则