我正在使用Butterknife(10.2.1)绑定项目中的视图。我最近将其迁移到了AndroidX。
尽管我正在根据此处的说明通过致电进行所有操作
@BindView(R.id.layout_purchase_item1)
View layout_purchase_item1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_purchase);
ButterKnife.bind(this);
layout_purchase_item1.setOnClickListener(this);
它不起作用,并给我以下例外:
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.sdf.blurphoto2.billings.PurchaseActivity.onCreate(PurchaseActivity.java:108)
显然,这里的视图没有绑定,但是我在布局文件中没有做错任何事情,因为仅用findViewById
替换绑定即可处理异常。但是我想用牛刀。有任何想法吗?
您可以使用以下依赖项更新build.gradle吗?
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
更新后,用黄油刀注入视图。
在gradle文件中的buildTypes标签下添加以下行
` lintOptions {
disable 'RestrictedApi'
}
compileOptions {
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
}
以及在我的项目gradle文件中
classpath 'com.android.tools.build:gradle:3.4.2'
在我的情况下,在相同的10.2.1版本中可以正常工作