2011-09-10 33 views
0

関数を呼び出すときにNULLポインタ例外が発生します。ここ
は私のコードです:ここでは関数呼び出し中にnullポインタ例外が発生する

try{ 
      ..... 
      String [] forForm = new String[5]; 
      forForm[0] = new String(parentElement.getNodeName()); 
      forForm[1] = new String(childElement1.getNodeName()); 
      forForm[2] = new String(ce1); 
      forForm[3] = new String(childElement2.getNodeName()); 
      forForm[4] = new String(ce2); 
      Log.e(tag,forForm.toString()); 
      showForm(forForm); 

    } catch (Exception e) { 
     Log.e(tag, "error in try: "+e.toString()); 
    } 

は私の出力です:forFormためのメモリ位置があるにもかかわらず

09-10 21:58:47.919: ERROR/ca(867): <?xml version='1.0' encoding='ISO-8859-1'?><LoginInfo><Username>un</Username><Password>pw</Password></LoginInfo> 
09-10 21:58:47.999: ERROR/ca(867): Username: un 
09-10 21:58:47.999: ERROR/ca(867): Password: pw 
09-10 21:58:48.019: ERROR/ca(867): [Ljava.lang.String;@44ed5570 
09-10 21:58:48.019: ERROR/ca(867): in show form1 
09-10 21:58:48.040: ERROR/ca(867): error in try: java.lang.NullPointerException 

は、なぜ私は、nullポインタ例外を取得していますか?


EDIT:出力で

private void showForm(String[] forForm) { 
     Log.e(tag, "in show form1"); 
     LinearLayout ol = (LinearLayout) findViewById(R.id.OuterLayout); 
     LinearLayout [] il = new LinearLayout [2]; 
     EditText [] et = new EditText[2]; 
     TextView [] tv = new TextView[3]; 

     tv[0].setText(forForm[0]); 
     tv[0].setTextSize(30); 
     tv[0].setLayoutParams(
       new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); 
     Log.e(tag, "in show form2"); 
     il[0].setOrientation(LinearLayout.HORIZONTAL); 
      tv[1].setText(forForm[1]); 
      tv[1].setTextSize(20); 
      tv[1].setLayoutParams(
        new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT,1f)); 
      il[0].addView(tv[1]); 

      et[0].setText(forForm[2]); 
      et[0].setId(1111); 
      et[0].setTextSize(20); 
      et[0].setLayoutParams(
        new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT,1f)); 
      il[0].addView(et[0]); 
      Log.e(tag, "in show form3"); 
     il[1].setOrientation(LinearLayout.HORIZONTAL); 
      tv[2].setText(forForm[3]); 
      tv[2].setTextSize(20); 
      tv[2].setLayoutParams(
        new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT,1f)); 
      il[1].addView(tv[1]); 

      et[1].setText(forForm[2]); 
      et[1].setId(2222); 
      et[1].setTextSize(20); 
      et[1].setLayoutParams(
        new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT,1f)); 
      il[1].addView(et[1]); 
      Log.e(tag, "in show form4");  
     ol.addView(tv[0]); 
     ol.addView(il[0]); 
     ol.addView(il[1]); 

     Log.e(tag, "Set Content View."); 
     this.setContentView(ol); 
    } 

、私は唯一の説明、その後、最初の記事で示したようforFormは、nullでないと仮定すると、

+2

デバッガを実行してみてください。 –

+0

あなたに知らせてくれます。 – Brahadeesh

+0

例外の完全なスタックトレースを追加してください。forFormや他の変数parentElement ...などが例外のソースです。そのことを確認するために、文字列を( "forForm1、forForm2 ..etc)のような単純な文字列で置き換え、問題がforForm配列か他の変数であるかどうかを確認してください:parentElement ... etc – Houcine

答えて

0

これは、ノードが存在しない場合は、.getnodename()で発生している可能性があります。ヌルノードで作業している場合、そのノードで.getnodename()を使用する前にノードが存在することを確認します。

+0

forFormのすべてのインデックスの値を取得しています。それらを表示するためにqnを編集します。 – Brahadeesh

1

"ShowFormを1における" まで取得しています私は考えていることができますshowForm例外をスローされます。

3つのnull TextViewを使用してTextView配列を初期化しましたが、これらのTextViewを構築することはできません。

+0

私は投稿しました。また、ログを更新しました。 – Brahadeesh

+0

2 'null'' LinearLayout'sと2' EditText's。 – Michael

関連する問題