butterknife未找到字段'hello'的ID为2131427413的必填视图'hello'

时间:2016-10-08 09:16:08

标签: android butterknife

Butterknife我使用@bindView来注释Button。 但它发生了错误。 Required view 'hello' with ID 2131427413 for field 'hello' was not found.

@BindView(R.id.hello)
Button hello;
@Inject
GitHubApiService gitHubApiService;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ButterKnife.bind(this);
    hello.setText("hello");
}

butterknife的依赖

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'//这个是自定义注解用的编译插件

buildscript {

    repositories {

        jcenter()

    }

    dependencies {

        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
        classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'

    }

}

3 个答案:

答案 0 :(得分:1)

您需要在调用ButterKnife.bind(this)之前设置内容视图,如下所示:

 setContentView(R.layout.your_view);
 ButterKnife.bind(this);

答案 1 :(得分:0)

谢谢!我自己找到了理由。

build.gradle of app module中添加以下内容之前。 但以下内容应添加到build.gradle of project

    >classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    >classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'

    buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.0'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
        classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

答案 2 :(得分:0)

同时检查setContentView(R.layout.your_view);您是否通过了正确的布局