一、前言:
今天在用 DataBinding 的时候爆出“Error:android.databinding.tool.util.LoggedErrorException: Found data binding errors.”
错误如下图:
image.png
二、解决方法:
错误用法:
<!-- data标签 -->
<data>
<variable
name="presenter"
type="com.function.luo.activity.A01MainActivity" />
</data>
正确用法:
<!-- data标签 -->
<data>
<variable
name="presenter"
type="com.function.luo.activity.A01MainActivity.Presenter" />
</data>
就是在用 DataBinding 初始化variable数据的时候,一定要到具体的类中。
A01MainActivity代码展示:
public class A01MainActivity extends AppCompatActivity {
public Presenter presenter;
private ActivityMainBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
inject();
}
private void inject() {
//现在我们通过DataBindingUtil设置布局文件
binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
//初始化Presenter对象
presenter = new Presenter();
//将presenter对象赋予XML中的 data -> variable -> presenter
binding.setPresenter(presenter);
}
public class Presenter {
public String message = " ~ ";
public void baseDataBinding() {
startActivity(new Intent(A01MainActivity.this,A02DataBindingBaseActivity.class));
}
}
}