下面提到的是我的JSONTask.java类:
public class JSONTask extends AsyncTask<String,String,String> {
public TextView tvData;
@Override
protected String doInBackground(String... params) {
BufferedReader reader=null;
HttpURLConnection connection= null;
try {
URL url =new URL(params[0]);
connection= (HttpURLConnection) url.openConnection();
connection.connect();
InputStream stream = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(stream));
StringBuffer buffer = new StringBuffer();
String line="";
while ((line=reader.readLine())!=null)
{
buffer.append(line);
}
return buffer.toString();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (connection != null) {
connection.disconnect();
}
try {
if (reader != null)
{
reader.close();
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
tvData.setText(result);
}
}
当调用此项时我的应用程序崩溃,我在logcat中收到以下错误:&#34;尝试调用虚方法&#39; void android.widget.TextView.setText(java.lang.CharSequence)&#39;在null对象引用&#34; at .fragment.JSONTask.onPostExecute(JSONTask.java:63)。它指向OnPostExecute方法。
我对编程非常陌生,并且已经在这里停留了一段时间。请帮忙。
答案 0 :(得分:1)
这是正常的NullPointerException。您的TextView tvData之前尚未初始化。
答案 1 :(得分:1)
semms的问题是TextView为null。也许,你不要从片段中设置这个字段。 Pr,你在创建的片段中创建了这个asynctask,它立即失败,所以视图还没有膨胀。尝试通过try-catch包围它,如果textview为null,请在调试器中查看