Android - 在 AsyncTask 中设置 WebViewClient 会导致 NullPointerException

Posted

技术标签:

【中文标题】Android - 在 AsyncTask 中设置 WebViewClient 会导致 NullPointerException【英文标题】:Android - setting WebViewClient causes NullPointerException in AsyncTask 【发布时间】:2011-07-23 16:48:47 【问题描述】:

所以我有这个 AsyncTask,它在 onPostExecute 中加载一个 WebView,否则它工作得很好,但是我需要为 onLoadResource 做一些事情,所以我试图设置一个 WebViewClient 并且由于某种原因导致 NullPointerException

私有类 newThread 扩展 AsyncTask 私有 WebView 网络视图; ... 受保护的无效onPostExecute(无效结果) setContentView(R.layout.reply); webview.setWebViewClient(new WebViewClient() @覆盖 public boolean shouldOverrideUrlLoading(WebView view, String url) 返回真; @覆盖 public void onLoadResource(WebView 视图,字符串 url) 结束(); ); 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 行,那么它运行良好。

【问题讨论】:

请发布堆栈跟踪或更清楚地指出发生 NPE 的位置。 【参考方案1】:

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

【讨论】:

以上是关于Android - 在 AsyncTask 中设置 WebViewClient 会导致 NullPointerException的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android Studio 中使用 AsyncTask 从可绘制对象中设置图像

无法使用 AsyncTask 在 TextView 中设置文本

在 asynctask 类中设置为 listView

Android:如何在这个 ListView 中设置图像?

在 GZIP 解压过程中设置 ProgressBar maxValue 和 publishProgress 值

如何在 Android 中设置 libsvm?