Ошибка при выполнении функции в AsyncTask doInBackground - PullRequest
0 голосов
/ 11 октября 2011

Я пытаюсь загрузить некоторые изображения с URL.

У меня есть личная пустота, которая делает всю работу.Это работает ... но у меня есть проблема, я хочу показать ход диалога, когда мои изображения загружаются ...

Я пытаюсь с AsyncTask, но у меня есть проблема при выполнении doInBackground!

Это мой код:

    @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    new EjecutarTarea().execute();



}


    private  void Principal() {
    //Code to download images from URL
    }


    public class EjecutarTarea extends AsyncTask<Void, Void, Void> {

    protected void onPreExecute() {
        dialog = new ProgressDialog(StadioNenaActivity.this);
        dialog.setMessage("Cargando..");
        dialog.setIndeterminate(true);
        dialog.setCancelable(false);
        dialog.show();
    }


    protected Void doInBackground(Void... Unsed) {

      Principal();  //i have an error here 
      return null;
    }

    protected void onProgressUpdate(Void... unused) {

    }

    protected void onPostExecute(Void unused) {
        dialog.dismiss();
    }
  }

Спасибо за помощь!.


Это ошибка в de log ... она возвращает null в некоторой частимой код PRINCIPAL () ....

Я не знаю, почему, когда я помещаю PRINCIPAL в Oncreate, он прекрасно работает!.

   10-10 17:56:01.988: ERROR/AndroidRuntime(10907): FATAL EXCEPTION: AsyncTask #1
    10-10 17:56:01.988: ERROR/AndroidRuntime(10907): java.lang.RuntimeException: An      error    occured while executing doInBackground()
    10-10 17:56:01.988: ERROR/AndroidRuntime(10907):     at android.os.AsyncTask$3.done  (AsyncTask.java:200)
    10-10 17:56:01.988: ERROR/AndroidRuntime(10907):     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
   10-10 17:56:01.988: ERROR/AndroidRuntime(10907):     at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
   10-10 17:56:01.988: ERROR/AndroidRuntime(10907):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
   10-10 17:56:01.988: ERROR/AndroidRuntime(10907):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
   10-10 17:56:01.988: ERROR/AndroidRuntime(10907):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
   10-10 17:56:01.988: ERROR/AndroidRuntime(10907):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
   10-10 17:56:01.988: ERROR/AndroidRuntime(10907):     at java.lang.Thread.run(Thread.java:1096)
   10-10 17:56:01.988: ERROR/AndroidRuntime(10907): Caused by: java.lang.NullPointerException
   10-10 17:56:01.988: ERROR/AndroidRuntime(10907):     at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:112)
  10-10 17:56:01.988: ERROR/AndroidRuntime(10907):     at org.json.JSONTokener.nextValue(JSONTokener.java:90)
  10-10 17:56:01.988: ERROR/AndroidRuntime(10907):     at org.json.JSONArray.<init>(JSONArray.java:87)
  10-10 17:56:01.988: ERROR/AndroidRuntime(10907):     at org.json.JSONArray.<init>(JSONArray.java:103)
  10-10 17:56:01.988: ERROR/AndroidRuntime(10907):     at Stadio.bacha.stadionena.StadioNenaActivity.Principal(StadioNenaActivity.java:121)
  10-10 17:56:01.988: ERROR/AndroidRuntime(10907):     at Stadio.bacha.stadionena.StadioNenaActivity$EjecutarTarea.doInBackground(StadioNenaActivity.java:262)
10-10 17:56:01.988: ERROR/AndroidRuntime(10907):     at Stadio.bacha.stadionena.StadioNenaActivity$EjecutarTarea.doInBackground(StadioNenaActivity.java:1)
10-10 17:56:01.988: ERROR/AndroidRuntime(10907):     at android.os.AsyncTask$2.call(AsyncTask.java:185)
10-10 17:56:01.988: ERROR/AndroidRuntime(10907):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
10-10 17:56:01.988: ERROR/AndroidRuntime(10907):     ... 4 more

Когда я так поступаю:

    @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Principal();

}

работает, но не показывает прогресс диалога ...

Ответы [ 2 ]

0 голосов
/ 14 января 2014

убедитесь, что ваш адрес правильный. Я получил эту ошибку, потому что я использовал 192.168.1.173/webroot путь ... Я имею в виду без нашего http: // часть как URL. После того как я попробовал с

http://192.168.1.173/web application path ...

отлично работает.

0 голосов
/ 11 октября 2011

Проблема в том, что при вызове doInBackground() возникает исключение NullPointerException.Убедитесь, что все данные доступны перед вызовом AsyncTask.execute() или предоставьте какой-нибудь механизм блокировки.

...