RecyclerView.ViewHolder не может связать просмотр с ButterKnife

Я использую ButterKnife чтобы привязать свои взгляды к моему ViewHolder . Мой код ниже:

 public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { private List<DataObject> data; public MyAdapter(List<DataObject> data) { this.data = data; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.my_layout, parent, false); return new ViewHolder(view); } public static class ViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.row_header_view) View rowHeaderView; @BindView(R.id.row_header_view_text) TextView headerTextView; @BindView(R.id.row_data_view) View rowDataView; @BindView(R.id.row_data_view_text) TextView rowDataTextView; @BindView(R.id.row_data_view_detail_text) TextView rowDataDetailTextView; public ViewHolder(View view) { super(view); ButterKnife.bind(this, view); } } } 

По какой-то причине в моем ViewHolder все ViewHolder ничего не делают. Все они ноль. Я могу с уверенностью подтвердить, что они в моем макете. Что не так с моим кодом? Я использовал его в соответствии с приведенной здесь документацией:

http://jakewharton.github.io/butterknife/#reset

Есть ли что-нибудь еще? Я использую версию ButterKnife :

 compile 'com.jakewharton:butterknife:8.2.1' 

Если я добавлю следующую строку:

 rowHeaderView = view.findViewById(R.id.row_header_view); 

Он может получить представление должным образом. Но как это имеет смысл? Не используется ButterKnife где findViewById можно использовать?

Solutions Collecting From Web of "RecyclerView.ViewHolder не может связать просмотр с ButterKnife"

Убедитесь, что если вы используете библиотеку ButterKnife чтобы использовать этот способ

Build.gradle файл проекта

 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' } } 

Затем примените плагин 'android-apt' на вашем module-level build.gradle и добавьте зависимости Butter Knife:

 apply plugin: 'android-apt' android { ... } dependencies { compile 'com.jakewharton:butterknife:8.2.1' apt 'com.jakewharton:butterknife-compiler:8.2.1' } 

Обновление за октябрь 2016 года. Вероятно, вам больше не нужен apt и плагин android-apt. Версия 2.2 плагина Android Gradle имеет конфигурацию annotationProcessor, которую вы должны использовать вместо этого.

В Android-студии 2.2, просто добавьте их в свой модуль build.gradle:

 compile 'com.jakewharton:butterknife:8.4.0' annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'