首页 > 解决方案 > 错误部分 setContentView(binding.getRoot());

问题描述

不知道具体是什么问题

应用程序一开始就会关闭,可能是绑定错误

   public abstract class CommonActivity<T extends ViewDataBinding> extends ThemedActivity {

       private T binding;

       protected abstract int getLayoutResId();

       protected abstract void doCreateView(Bundle savedInstanceState);

    protected final void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    beforeCreate(savedInstanceState);

    if (getLayoutResId() <= 0 ) {
        throw new AssertionError("Subclass must provide a valid layout resource id");
    }

    binding = DataBindingUtil.inflate(getLayoutInflater(), getLayoutResId(), null, false);

    setContentView(binding.getRoot()); ---- error

    doCreateView(savedInstanceState);
}


 protected final T getBinding() {
    return binding;
}

protected <VM extends ViewModel> VM getViewModel(@NonNull Class<VM> modelClass) {
    return ViewModelProviders.of(this).get(modelClass);
}

protected Fragment getCurrentFragment(@IdRes int containerId) {
    return getSupportFragmentManager().findFragmentById(containerId);
}

错误:

Logcat :java.lang.RuntimeException: Unable to start activity ComponentInfo{project package/project package.activity.MainActivity}: 
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.databinding.ViewDataBinding.getRoot()' on a null object reference

标签: javaandroid

解决方案


推荐阅读