【发布时间】:2016-04-06 04:33:52
【问题描述】:
这是我的异步任务扩展方法的 doInbackground 方法,我在这里遇到致命错误 #4.. 这是我通过异步任务扩展方法调用 Web 服务的代码
protected String doInBackground(String... params) {
String MESSAGE=null;
String NUMBER=null;
String pass=settings.getString("username","").toString();
String nam=settings.getString("sender","").toString();
String uri=settings.getString("type", "").toString();
try
{
MESSAGE= URLEncoder.encode(params[0],"UTF-8");
}catch (UnsupportedEncodingException e){
e.printStackTrace();
}
try
{
NUMBER=URLEncoder.encode(params[1],"UTF-8");
}catch (UnsupportedEncodingException e){
e.printStackTrace();
}
if(uri.equals("LM1"))
{
uri="http://userd.gjsms.net/api/v1/sms/single.json?token="+pass+"&sender_id="+nam+"&msisdn="+NUMBER+"&text="+MESSAGE+"&route=TRANS";
}
MyHandler mine=new MyHandler();
String json=mine.makeServiceCall(uri);
if(json!=null)
{
try{
JSONObject job=new JSONObject(json);
boolean error=job.getBoolean("error");
if(error)
{
Log.e("Add Prediction Error: ",
"> " + job.getString("message"));
}
}catch (JSONException e)
{
e.printStackTrace();
}
}
else
{
Log.e("JSON Data", "JSON data error!");
}
return null;
}
此处显示我的错误列表
FATAL EXCEPTION: AsyncTask #3
Process: com.example.web03.bulkmessenger, PID: 32230
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:304)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.IllegalStateException: Target host must not be null, or set in parameters. scheme=null, host=null, path=LM2
at org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:2588)
at org.apache.http.impl.client.DefaultRequestDirector.executeOriginal(DefaultRequestDirector.java:1250)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:707)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:699)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:520)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:498)
at handler.MyHandler.makeServiceCall(MyHandler.java:45)
at handler.MyHandler.makeServiceCall(MyHandler.java:33)
at com.example.web03.bulkmessenger.MessageActivity$AsynctaskRunner.doInBackground(MessageActivity.java:124)
at com.example.web03.bulkmessenger.MessageActivity$AsynctaskRunner.doInBackground(MessageActivity.java:83)
at android.os.AsyncTask$2.call(AsyncTask.java:292)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
希望你能理解我的问题 提前感谢您的帮助...
【问题讨论】:
-
请发布完整的堆栈跟踪。
-
方法expect返回String时为什么返回null?
-
@HendraWijayaDjiono:你能更新我的代码吗?
-
我的意思是你可以使用 AsyncTask
代替 AsyncTask -
无论如何,请检查您尝试访问的网络,它是否处于活动状态?您的设备中有互联网连接吗?您是否将
标签: android android-asynctask fatal-error