アプリケーションで FATAL EXCEPTION: AsyncTask #2 が発生します。誰かが理由を教えてください。また、私が何をする必要があるか教えてください。私は今かなり混乱していて、少し助けが必要です。
07-25 11:18:27.014: E/AndroidRuntime(784): FATAL EXCEPTION: AsyncTask #2
07-25 11:18:27.014: E/AndroidRuntime(784): java.lang.RuntimeException: An error occured while executing doInBackground()
07-25 11:18:27.014: E/AndroidRuntime(784): at android.os.AsyncTask$3.done(AsyncTask.java:299)
07-25 11:18:27.014: E/AndroidRuntime(784): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
07-25 11:18:27.014: E/AndroidRuntime(784): at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
07-25 11:18:27.014: E/AndroidRuntime(784): at java.util.concurrent.FutureTask.run(FutureTask.java:239)
07-25 11:18:27.014: E/AndroidRuntime(784): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
07-25 11:18:27.014: E/AndroidRuntime(784): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
07-25 11:18:27.014: E/AndroidRuntime(784): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
07-25 11:18:27.014: E/AndroidRuntime(784): at java.lang.Thread.run(Thread.java:856)
07-25 11:18:27.014: E/AndroidRuntime(784): Caused by: java.lang.NullPointerException
07-25 11:18:27.014: E/AndroidRuntime(784): at com.theproblemsolver.JSONParsser.getJSONFromURI(JSONParsser.java:35)
07-25 11:18:27.014: E/AndroidRuntime(784): at com.theproblemsolver.asynctask.doInBackground(MainActivity.java:64)
07-25 11:18:27.014: E/AndroidRuntime(784): at com.theproblemsolver.asynctask.doInBackground(MainActivity.java:1)
07-25 11:18:27.014: E/AndroidRuntime(784): at android.os.AsyncTask$2.call(AsyncTask.java:287)
07-25 11:18:27.014: E/AndroidRuntime(784): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
メインクラス
public class MainActivity extends Activity {
EditText et;
Button getanswer;
JSONArray ResultsSet = null; {}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button getanswer = (Button) findViewById(R.id.button1);
getanswer.setOnClickListener(new OnClickListener() {
public String uRI;
@Override
public void onClick(View v) {
new asynctask().execute(uRI);
Intent i = new Intent(MainActivity.this, ListView.class);
startActivity(i);
}
});
}
}
class asynctask extends AsyncTask<String, Void, JSONObject> {
private static final String TAG_RESULTS = "ResultsSet";
private static final String TAG_SUBJECT = "Subject";
private static final String TAG_NUMANSWERS = "NumAnswers";
private static final String TAG_QUESTION = "Question";
private static final String TAG_QUESTION_CONTENT = "Content";
private static final String TAG_QUESTION_CHOSENANSWER = "ChosenAnswer";
private static final String TAG_QUESTION_ANSWERS = "Answers";
public JSONArray json;
@Override
protected JSONObject doInBackground(String... params) {
JSONParsser jParser = new JSONParsser();
String uRI = params[0];
JSONObject json = jParser.getJSONFromURI(uRI);
return json ;
}{ }
@Override
protected void onPostExecute(JSONObject json) {
JSONArray ResultsSet = null; {
try {
ResultsSet = json.getJSONArray(TAG_RESULTS);
} catch (JSONException e) {
e.printStackTrace();
}
return;
}}}
JSONParsser クラス
public class JSONParsser {
static InputStream is = null;
static JSONObject jObj = null;
static String json = "";
EditText et;
public JSONParsser () {
}
public JSONObject getJSONFromURI(String uRI) {
try{
HttpClient client = new DefaultHttpClient();
try {
URI website = new URI("http://example=" + et.getText() + "json");
HttpGet request = new HttpGet();
request.setURI(website);
try {
HttpResponse response = client.execute(request);
HttpEntity httpEntity = response.getEntity();
is = httpEntity.getContent();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return jObj;
}finally{}
}{
}}
InstanceofJSONParsser クラス
public class JSONParserInstance {
JSONParsser jParser = new JSONParsser();
public String uRI;
JSONObject json = jParser.getJSONFromURI(uRI);
private static final String TAG_RESULTS = "ResultsSet";
private static final String TAG_SUBJECT = "Subject";
private static final String TAG_NUMANSWERS = "NumAnswers";
private static final String TAG_QUESTION = "Question";
private static final String TAG_QUESTION_CONTENT = "Content";
private static final String TAG_QUESTION_CHOSENANSWER = "ChosenAnswer";
private static final String TAG_QUESTION_ANSWERS = "Answers";
JSONArray ResultsSet = null; {
try {
ResultsSet = json.getJSONArray(TAG_RESULTS);
for(int i = 0; i < ResultsSet.length(); i++){
JSONObject r = ResultsSet.getJSONObject(i);
String Subject = r.getString(TAG_SUBJECT);
String NmAnswers = r.getString(TAG_NUMANSWERS);
JSONObject Question = r.getJSONObject(TAG_QUESTION);
String Content = Question.getString(TAG_QUESTION_CONTENT);
String ChosenAnswer = Question.getString(TAG_QUESTION_CHOSENANSWER);
String Answers = Question.getString(TAG_QUESTION_ANSWERS);
}
} catch (JSONException e) {
e.printStackTrace();
}}}