ButterKnife 10.1.0 在library中依赖,主项目依赖子项目,出现主项目控件为null
1、baselibrary中的依赖
api 'com.jakewharton:butterknife:10.1.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
2、app中的依赖
implementation project(path: ':baselibrary')
3、BaseActivity
private Unbinder mUnBinder;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutId());
mUnBinder = ButterKnife.bind(this);
initView();
initData();
4、activity(继承自BaseActivity)
@BindView(R.id.btn_show)
Button mButton;
...
@Override
protected void initView() {
LogUtil.d(TAG, "initView: ");
mButton.setOnClickListener(v -> mPresenter.getAd());
}
出现空指针:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at com.therock.superbaseproject.SplashActivity.initView(SplashActivity.java:31)
at com.therock.baselibrary.app.BaseActivity.onCreate(BaseActivity.java:34)
解决方案
在app的build.gradle中也添加如下代码:
implementation 'com.jakewharton:butterknife:10.1.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
原因还在分析中,有知道的小伙伴可以在评论中告诉我一下,万分感谢!!