在我患findViewById
之后我决定使用ButterKnife
但好的虫告诉我你永远不会使用ButterKnife
这是错误
@AngjectView-注释类在Android框架包中不正确。
为什么呢?我的错在哪里? gradle dependency
错了吗?
我看到this post,但它没有帮助我
gradle文件(模块)
apply plugin: 'com.neenbedankt.android-apt'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}
dependencies {
compile 'com.jakewharton:butterknife:8.0.1'
apt 'com.jakewharton:butterknife-compiler:8.0.1'
}
此行中的错误
@BindView(R.id.button_birth_date)
private Button buttonBirthDate;
以及使用@BindView的其他成员变量(视图)
答案 0 :(得分:7)
杰克沃顿, 例外情况说明了一切:
@InjectView-annotated class incorrectly in Android framework package.
你的课程在Android框架包中,android。。应用程序不应使用android。或java。*包作为其代码。 ButterKnife会急切地拒绝这些包裹。
更改您的包裹名称。 android.alcode.com.material 至 something.alcode.com.material
答案 1 :(得分:1)
您的包裹名称上不得包含android
字
因此请确保
your application package
名称不包含android word
就可以了
答案 2 :(得分:0)
如果您使用最后一个Butterknife,您确实使用Butterknife.bind(this)而不是Butterknife.inject(this),视图使用@Bind(R.id.idview)而不是@InjectView(R.id.idview)。 见documentation
编辑:更改你的包名,你不能使用android。*或java。*,Jake Wharton回答解决方案