2016-04-06 4 views
0

Вот мой метод doInbackground для асинхронной задачи расширенного метода я получил фатальную ошибку # 4 здесь .. его мой код для вызова веб-службы через AsyncTask расширенный методAsyncTask FATAL ERROR # 3

 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)  

надеюсь, что вы поймете мою rpoblem спасибо за помощь заранее ...

+3

Пожалуйста, разместите полную статистику стека. –

+0

@MikeM. : обновлено – Shellz

+0

Почему вы вернули значение null, когда метод ожидает возврата строки? – HendraWD

ответ

1

Это тот случай, когда у вас нет ури. Вы проверяете условие и присваиваете значение URI, но если условие терпит неудачу, ваш uri имеет значение null и, следовательно, ошибку.