【问题标题】:Android - setting WebViewClient causes NullPointerException in AsyncTaskAndroid - 在 AsyncTask 中设置 WebViewClient 会导致 NullPointerException
【发布时间】: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 的位置。

标签: android


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多