ButterKnife Android: 无法将侦听器添加到视图

ButterKnife Android: Unable to add Listener to View

我像这样将 Butter knife 库添加到 Gradle:

dependencies {
   compile 'com.jakewharton:butterknife:8.0.1'
   ...
}

创建了 ID 为 btnPressButton。在我的 Activity 中,当我尝试使用 @onClick(R.id.btnPress) 添加方法时,在 运行 应用程序上,该方法没有执行。

Activity:

public class MainActivity extends AppCompatActivity {

    @BindView(R.id.btnPress)
    Button btnPress;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        ButterKnife.bind(MainActivity.this);
    }

    //This method is not being called when Button is pressed.
    @OnClick(R.id.btnPress)
    void onPress() {
        ...
    }
}

我是这样解决这个问题的:

首先,在您的顶级 build.gradle 文件中,包括:

classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

在buildscript依赖中,如:

  buildscript {
    dependencies {
      classpath 'com.android.tools.build:gradle:2.0.0'
      classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
  }

然后,在您模块的 build.gradle 文件中,在顶部包含 apply plugin: 'com.neenbedankt.android-apt'

现在在模块级别包含 ButterKnife 库和编译器 build.gradle:

dependencies {
    compile 'com.jakewharton:butterknife:8.0.1'
    apt 'com.jakewharton:butterknife-compiler:8.0.1'
    ...
}