我在我的项目中使用了黄油刀库。当我在 Lollipop AOSP 中构建时它工作正常,但相同的代码什么也不初始化,所以在 Marshmallow AOSP 中抛出 NPE 之后。
这是代码:
public class ErrorLayoutViewHolder extends ViewHolder {
@Bind(R.id.error_content_container)
View errorContentLayout;
@Bind(R.id.error_message)
TextView errorMessage;
@Bind(R.id.retry_button)
View retryButton;
public ErrorLayoutViewHolder(final View itemView, View.OnClickListener retryListener) {
super(itemView);
retryButton.setOnClickListener(retryListener);
}
}
这是父类ViewHolder.java:
public class ViewHolder {
final public View itemView;
public ViewHolder(View itemView) {
this.itemView = itemView;
itemView.setTag(this);
ButterKnife.bind(this, itemView);
}
}
这是堆栈跟踪:
AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
02-25 20:38:57.538 5922 5922 E AndroidRuntime: at com.micromax.aroundyou.model.ui.viewholders.ErrorLayoutViewHolder.<init>(ErrorLayoutViewHolder.java:38)
第 38 行:
retryButton.setOnClickListener(retryListener);
可能是什么问题?