2012-03-06 10 views
-2

getHandlerでnullPointerExceptionが発生しましたが、この問題を解決できません。nullPointerExceptionハンドラーAndroid

私を助けてくれますか?バグはどこにあるのかわかりません。同じ状況でランダムにエラーが発生します。

いくつかのコード...

nullになる可能性があるの変数がたくさんある
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); 
       } 
      });   
     } 
+3

LogCatの完全な出力を投稿してください。 – bschultz

+0

そして、コードのどこにtxt_status1のハンドラを設定しているかを示します。最も直接的な可能性は、決してハンドラを設定しないことです! – robamaton

+0

ここにlogCatがあります:http://dl.dropbox.com/u/47137048/logcat.txt – kekko986

答えて

0

、すなわちとlogcatまたは再読み込み(それがされている行を把握するために、デバッグを使用してみてくださいJava Exception BreakpointNullPointerException)。

エラーが発生するか、「ランダムに」発生しない場合、通常の落とし穴の1つは、アクティビティのonCreateの外側にあるメンバ変数(mHandler ...でも、txt_status1、progressBar1、btn_stopなど) 。 Androidがオリエンテーションの変更を初期化したり、他の理由であなたのアクティビティを殺したり再作成したりすることをランダムに決定した場合、状態は失われ、それらのメンバー変数はすべてnullになります。

+0

こんにちはポールジャン...答えていただきありがとうございます...このことを見て頂ければ幸いです。frm_elabora.java http://dl.dropbox.com/u/47137048/frm_elabora.java 前もって感謝します!!! – kekko986

+0

私は問題を解決すると思う:私はもうNullPointerExceptionを取得しない... .. onCreateと新しいTrheadの前にハンドラを初期化...しかし、もしAndroidが方向変更を初期化すれば..トーストと他のものの再起動のようなもの。 .. – kekko986

関連する問題