2011-03-26 2 views
2

그래서이 AsyncTask는 onPostExecute에서 WebView를로드합니다. 그렇지 않으면 완벽하게 작동하지만, WebViewClient를 설정하려고 할 때 어떤 이유로 onLoadResource를 수행해야합니다. NullPointerException이 발생합니다.안드로이드 - WebViewClient를 설정하면 AsyncTask에서 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 행을 제거하면 잘 돌아갑니다.

+0

스택 추적을 게시하거나 NPE가 발생하는 위치를보다 명확하게 표시하십시오. – katsharp

답변

1

코드에서 아무 것도 지정하기 전에 webview (webview.setWebViewClient)의 함수를 호출하려고하면 (webview = (WebView)findViewById(R.id.replyview);)이 두 명령문의 순서가 변경됩니다.

+0

와우 ... 감사합니다. – aperture

관련 문제