URLソースからhtmlファイルを読み込もうとしていますが、nullpointerexceptionが発生します。これが私のコードです:
public class NetworkThread extends AsyncTask<String, Integer, String> {
URL url;
StringBuffer sb;
InputStream is;
@Override
protected String doInBackground(String... arg0) {
// TODO Auto-generated method stub
String webUrl = etUrl.getText().toString();
try {
url = new URL(webUrl);
BufferedReader in = new BufferedReader(
new InputStreamReader(url.openStream()));
String htmlLine;
while ((htmlLine = in.readLine()) != null)
sb.append(htmlLine);
in.close();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "Bad URL";
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "Input / Output";
} catch (NullPointerException e) {
e.printStackTrace();
return "Null";
}
return sb.toString();
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
html.setText(result);
}
}
このプログラムを通常のJavaで実行してみました-URLをハードコーディングすると、正常に実行されます。
ただし、Androidで実行すると、TextViewに「Null」メッセージが表示されます。
LogCatによると、NullPointerExceptionはsb.append(htmlLine)からのものです。。