ButterKnife首先使用错误

时间:2016-04-28 17:32:57

标签: android butterknife

在我患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的其他成员变量(视图)

3 个答案:

答案 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回答解决方案