尝试在空对象引用上调用虚拟方法 'android.view.View android.view.View.findViewById(int)'

ttempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference

我创建了一个 Fragment,我想加载一个 WebView。但是我得到这个错误:

Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference

代码:

    public class StudentPlanFragment extends Fragment {

    private WebView mWebView;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View onCreateView = super.onCreateView(inflater, container, savedInstanceState);

        mWebView = (WebView) onCreateView.findViewById(R.id.webViewStudentPlan);
        mWebView.loadUrl("http://example");
        mWebView.getSettings().setJavaScriptEnabled(true);


        return onCreateView;
    }
}

感谢您的帮助。

编辑如下:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.YOUR_LAYOUT_NAME, null);
mWebView = (WebView) rootView .findViewById(R.id.webViewStudentPlan);
mWebView.loadUrl("http://example");
mWebView.getSettings().setJavaScriptEnabled(true);


return rootView ;
}

您必须在代码中膨胀 xml 才能从 xml 布局中找到 WebView

public class StudentPlanFragment extends Fragment {

private WebView mWebView;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    //Delete the below commented code, it is just to highlight the mistake in the existing code

    /* View onCreateView = super.onCreateView(inflater, container, savedInstanceState);*/

    View mView = inflater.inflate(R.layout.YOUR_XML_LAYOUT_FILE_NAME, container, false);

    mWebView = (WebView) onCreateView.findViewById(R.id.webViewStudentPlan);
    mWebView.loadUrl("http://example");
    mWebView.getSettings().setJavaScriptEnabled(true);


    return onCreateView;
    }
}