首页 文章

Android - 设置WebViewClient会导致AsyncTask中出现NullPointerException

提问于
浏览
1

所以我有这个AsyncTask在onPostExecute中加载一个WebView,否则它可以完美地运行,但是我需要为onLoadResource做一些事情所以我试图设置一个WebViewClient并且由于某种原因导致了NullPointerException

private class newThread extends AsyncTask{
     private WebView webview;

...

protected void onPostExecute(Void result){
    setContentView(R.layout.reply);
    webview.setWebViewClient(new WebViewClient(){
        @Override
        public boolean shouldOverrideUrlLoading(WebView  view, String  url){
            return true;
        }
        @Override
        public void onLoadResource(WebView  view, String  url){
            finish();
        }
    });
    webview = (WebView)findViewById(R.id.replyview);
    webview.getSettings().setJavaScriptEnabled(true);
    webview.setScrollBarStyle(0);
    webview.loadDataWithBaseURL("http://example.com", "example", "text/html", "utf-8", null);
}

...

那段代码有什么问题吗?

如果我使用基本相同的方法但在AsyncTask之外,则没有错误 . 如果我删除setWebViewClient行,那么它运行正常 .

1 回答

  • 1

    在您的代码中,您尝试在为其分配任何内容之前调用webview( webview.setWebViewClient )的函数( webview = (WebView)findViewById(R.id.replyview); )更改这两个语句的顺序 .

相关问题