Java Android崩溃:异步错误2
我已经多次搜索这个问题,但没有找到解决方案。我正在构建一个应用程序,用户在其中登录并显示其配置文件,但在显示配置文件时,它会立即崩溃 错误:Java Android崩溃:异步错误2,java,android,android-asynctask,Java,Android,Android Asynctask,我已经多次搜索这个问题,但没有找到解决方案。我正在构建一个应用程序,用户在其中登录并显示其配置文件,但在显示配置文件时,它会立即崩溃 错误: 12-28 15:01:03.797: E/AndroidRuntime(2565): FATAL EXCEPTION: AsyncTask #2 12-28 15:01:03.797: E/AndroidRuntime(2565): java.lang.RuntimeException: An error occured while executing
12-28 15:01:03.797: E/AndroidRuntime(2565): FATAL EXCEPTION: AsyncTask #2
12-28 15:01:03.797: E/AndroidRuntime(2565): java.lang.RuntimeException: An error occured while executing doInBackground()
12-28 15:01:03.797: E/AndroidRuntime(2565): at android.os.AsyncTask$3.done(AsyncTask.java:299)
12-28 15:01:03.797: E/AndroidRuntime(2565): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
12-28 15:01:03.797: E/AndroidRuntime(2565): at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
12-28 15:01:03.797: E/AndroidRuntime(2565): at java.util.concurrent.FutureTask.run(FutureTask.java:239)
12-28 15:01:03.797: E/AndroidRuntime(2565): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
12-28 15:01:03.797: E/AndroidRuntime(2565): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
12-28 15:01:03.797: E/AndroidRuntime(2565): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
12-28 15:01:03.797: E/AndroidRuntime(2565): at java.lang.Thread.run(Thread.java:856)
12-28 15:01:03.797: E/AndroidRuntime(2565): Caused by: java.lang.NullPointerException
12-28 15:01:03.797: E/AndroidRuntime(2565): at com.example.itmaproject.Profile$DownloadStylist.doInBackground(Profile.java:104)
12-28 15:01:03.797: E/AndroidRuntime(2565): at com.example.itmaproject.Profile$DownloadStylist.doInBackground(Profile.java:1)
12-28 15:01:03.797: E/AndroidRuntime(2565): at android.os.AsyncTask$2.call(AsyncTask.java:287)
12-28 15:01:03.797: E/AndroidRuntime(2565): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
12-28 15:01:03.797: E/AndroidRuntime(2565): ... 4 more
java代码
private class DownloadStylist extends AsyncTask<String, String, JSONObject> {
private ProgressDialog progressDialog = new ProgressDialog(
Profile.this);
protected void onPreExecute() {
progressDialog.setMessage("Loading profile ...");
progressDialog.setIndeterminate(false);
progressDialog.setCancelable(false);
progressDialog.show();
}
protected JSONObject doInBackground(String... args) {
Intent i1 = getIntent();
username = i1.getStringExtra("username");
List<NameValuePair> params1 = new ArrayList<NameValuePair>();
params1.add(new BasicNameValuePair("username", username));
JSONObject json = jsonParser.makeHttpRequest(url, "POST", params1);
// Check your log cat for JSON reponse
Log.d("Profile JSON: ", json.toString());
try {
// profile json object
jsonarray = json.getJSONArray("user");
user = new String[jsonarray.length()];
for (int m = 0; m < jsonarray.length(); m++) {
json = jsonarray.getJSONObject(m);
// Retrive JSON Objects
user[m] = json.getString("user");
}
} catch (JSONException e) {
e.printStackTrace();
}
return json;
}
@Override
protected void onPostExecute(JSONObject json) {
super.onPostExecute(json);
// dismiss the dialog after getting all products
progressDialog.dismiss();
try {
String userid = json.getString("userid");
String name = json.getString("name");
String email = json.getString("email");
String department = json.getString("department");
String gender = json.getString("gender");
String ssid = json.getString("ssid");
String birthdate = json.getString("birthdate");
String phid = json.getString("phid");
// displaying all data in textview
UserId.setText(userid);
fName.setText(name);
Email.setText(email);
// displaying all data in textview
Add.setText(department);
Sex.setText(gender);
Conts.setText(ssid);
Bday.setText(birthdate);
txtCredits.setText(phid);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
读一读吧!原因:java.lang.NullPointerException 12-28 15:01:03.797:E/AndroidRuntime2565:at com.example.itmaproject.Profile$DownloadStylist.doInBackgroundProfile.java:104第104行是什么?我猜用户名是空的。在此方法上设置断点,单步执行并检查。Debugger将在30秒后发现这一点。您需要调查makeHttpRequest返回null的原因。第104行之前的日志中的任何异常都是log.dProfile JSON:,JSON.toString;哈哈,你知道怎么使用调试器吗?顺便说一句,这对找出这些问题非常有帮助:您应该总是期望从对外部资源的调用中获得异常和null返回,并正确地处理它们。您还应该学习如何使用调试器。
Log.d("Profile JSON: ", json.toString());