2012-01-03 6 views
0

LogCatを使用して、resフォルダ内のXMLファイルを読み取る単純なアプリケーションをデバッグしようとしています。LogCatとtry/catchブロックの適切な使用

私はEclipseのLogCatウィンドウでこのエラーを取得しておいてください。

01-03 10:21:30.741: W/dalvikvm(356): threadid=1: thread exiting with uncaught exception (group=0x40014760) 
E/AndroidRuntime(356): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{tot.HelloAndroid/tot.HelloAndroid.HelloAndroid}: java.lang.NullPointerException: println needs a message 

これは私に役立つていないようです。私はこのようなtry/catchブロックを使用しています。これは大丈夫ですか?

public XmlParser() throws XmlPullParserException, IOException { 

    try { 
    XmlPullParser xpp = getResources().getXml(R.xml.encounters); 
    // ...do stuff... 
    } catch (Exception e) { 
    Log.e("error", e.getMessage()); 
    } 

    //... 
+2

このアクティビティはAndroidManifest.xmlで正しく定義されていますか? – kosa

+0

私のアプリはAndroidManifest.xmlで定義されたアクティビティを持っています...私のアプリのちょうどその名前.... HelloAndroid – SkyeBoniwell

答えて

2

エラーメッセージが(エラーメッセージが設定されていない場合場合であってもよい)nullであれば、あなたは何を印刷しないようにしようと、簡単な修正は

Log.e("error",""+e.getMessage()); //or "error message: "+e.getMessage();, or whatever you want. 

または

を使用することです
Log.e("error", String.valueOf(e.getMessage())); 

さらに詳しい情報を得るには、e.printStackTrace()に電話することもできます。

+1

私はe.printStackTrace()が参考になるとは思いません。そうでない場合は、試してください:Log.e( "error"、Log.getStackTrace(e)); – ab11

+1

スタックトレースがLog.getStackTrace()と比較して参考にならないのはなぜですか?両方とも正確に同じ情報を出力しますが、Log.e( "error"、Log.getStackTrace(e)));それを警告の代わりにエラーとして出力し、タグ「エラー」を表示します。 – Jave

+0

2番目のオプションを試しましたが、私のcatlogウィンドウに 'error' 'null'が表示されます。 nullが何であるか把握する方法はありますか?私はそれがXMLファイル、またはXMLファイル内の要素を見つけることができない場合はわかりません。 - thanks – SkyeBoniwell