nullPointerException Обработчик Android - PullRequest
0 голосов
/ 07 марта 2012

Я получил исключение nullPointerException на getHandler, и я не могу решить эту проблему ..

Вы можете мне помочь? Я понятия не имею, где ошибка .. ошибка происходит случайно в той же ситуации.

некоторый код ...

    final Handler mHandler = new Handler();
    new Thread(new Runnable() {
        public void run() {
            while (mProgressStatus < 100) {
                    mProgressStatus = Elabora();
                    mHandler.post(new Runnable() {
                    public void run() {
                        progressBar1.setProgress((int) mProgressStatus);
                    }
                });
            }
            if(isStopped)
            {
                op_ko.show();
                     //error in the next line
            txt_status1.getHandler().post(new Runnable() {
                    public void run() {
                        txt_status1.setText(R.string.op_ko);
                    }
                });

            }
                else
                {
                    op_ok.show();
                    txt_status1.getHandler().post(new Runnable() {
                        public void run() {
                            txt_status1.setText(R.string.op_ok);
                        }
                    });
                }
            btn_stop.getHandler().post(new Runnable() {
                public void run() {
                    btn_stop.setVisibility(View.INVISIBLE);
                }
            });         
        }

1 Ответ

0 голосов
/ 07 марта 2012

Там много переменных, которые могут быть нулевыми, пожалуйста, попробуйте использовать отладку, чтобы выяснить, какая это строка (т. Е. Прочитать logcat или перезапустить с Java Exception Breakpoint на NullPointerException).

Если ошибка возникает или не возникает «случайно», одной из обычных ловушек является инициализация переменных-членов (mHandler ... но также может быть txt_status1, progressBar1, btn_stop и т. Д.) Вне onCreate действия.Если Android инициализирует изменение ориентации или случайным образом решает убить и воссоздать вашу деятельность по любой другой причине, вы потеряете состояние, и все эти переменные-члены будут иметь значение null.

...