【发布时间】:2014-02-20 17:19:28
【问题描述】:
我正在开发一个应用程序,因为我必须向服务器发送数据。我在获取用户详细信息时遇到异常 nullpointer 异常请告诉我哪里出错了
我的活动代码
userDetails = new DetailsDTO();
userName = userNameEdit.getText().toString().trim();
password = passwordEdit.getText().toString().trim();
confirmPwd = confirmPasswordEdit.getText().toString();
mobileNo = mobileNoEdit.getText().toString();
userDetails.setUserName(userName);
userDetails.setPassword(password);
userDetails.setConfirmPwd(confirmPwd);
userDetails.setMobileNumber(mobileNo);
(new UserDetailsAsync(mContext)).execute();
我的 AsyncTask 代码:
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
httpClient = new DefaultHttpClient();
httpPost = new HttpPost(TrafficConstants.USER_REG_URL);
Log.e("userName", details.getUserName());
Log.e("pass", details.getPassword());
Log.e("MOb",details.getMobileNumber());
try{
arrayList = new ArrayList<NameValuePair>(3);
arrayList.add(new
BasicNameValuePair("usr",details.getUserName()));
arrayList.add(new
BasicNameValuePair("pass",details.getPassword()));
arrayList.add(new
BasicNameValuePair("mob",details.getMobileNumber()));
httpPost.setEntity(new UrlEncodedFormEntity(arrayList));
HttpResponse response = httpClient.execute(httpPost);
}
catch(Exception e){
e.printStackTrace();
}
return null;
}
LogCat 错误
02-20 12:16:37.535: E/AndroidRuntime(2605): java.lang.RuntimeException: An error occured while executing doInBackground()
02-20 12:16:37.535: E/AndroidRuntime(2605): at android.os.AsyncTask$3.done(AsyncTask.java:299)
02-20 12:16:37.535: E/AndroidRuntime(2605): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
02-20 12:16:37.535: E/AndroidRuntime(2605): at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
02-20 12:16:37.535: E/AndroidRuntime(2605): at java.util.concurrent.FutureTask.run(FutureTask.java:239)
02-20 12:16:37.535: E/AndroidRuntime(2605): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
02-20 12:16:37.535: E/AndroidRuntime(2605): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
02-20 12:16:37.535: E/AndroidRuntime(2605): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
02-20 12:16:37.535: E/AndroidRuntime(2605): at java.lang.Thread.run(Thread.java:856)
02-20 12:16:37.535: E/AndroidRuntime(2605): Caused by: java.lang.NullPointerException: println needs a message
02-20 12:16:37.535: E/AndroidRuntime(2605): at android.util.Log.println_native(Native Method)
02-20 12:16:37.535: E/AndroidRuntime(2605): at android.util.Log.e(Log.java:231)
02-20 12:16:37.535: E/AndroidRuntime(2605): at com.technowellServices.locationfind.UserRegistratrionActivity$UserDetailsAsync.doInBackground(UserRegistratrionActivity.java:150)
02-20 12:16:37.535: E/AndroidRuntime(2605): at com.technowellServices.locationfind.UserRegistratrionActivity$UserDetailsAsync.doInBackground(UserRegistratrionActivity.java:1)
02-20 12:16:37.535: E/AndroidRuntime(2605): at android.os.AsyncTask$2.call(AsyncTask.java:287)
【问题讨论】:
-
发布你的错误日志,即 logcat
-
您已将数据设置为 userDetails 对象并从 details 对象中获取?使用 userDetails 代替 details
-
我加了请看我的代码下
-
我写的都是不同的类
-
@Durga
Log.e("userName", details.getUserName())``details可能为空。它在哪里初始化?