2012-03-17 8 views
2

このようなエラーのトラブルシューティングを開始するにはどうすればよいですか?私は時々それらを取得し、私はそれらと何をするか分からない。私はスタックトレースをデコードするのにはかなり良くなっていると思っていましたが、これは私を困惑させてしまいます。Androidスタックトレースに自分のコードが記載されていません

java.lang.NullPointerException 
at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:355) 
at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323) 
at android.widget.AbsListView.obtainView(AbsListView.java:1315) 
at android.widget.ListView.makeAndAddView(ListView.java:1727) 
at android.widget.ListView.fillDown(ListView.java:652) 
at android.widget.ListView.fillSpecific(ListView.java:1284) 
at android.widget.ListView.layoutChildren(ListView.java:1558) 
at android.widget.AbsListView.onLayout(AbsListView.java:1147) 
at android.view.View.layout(View.java:7035) 
at android.widget.FrameLayout.onLayout(FrameLayout.java:333) 
at android.view.View.layout(View.java:7035) 
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249) 
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1125) 
at android.widget.LinearLayout.onLayout(LinearLayout.java:1042) 
at android.view.View.layout(View.java:7035) 
at android.widget.FrameLayout.onLayout(FrameLayout.java:333) 
at android.view.View.layout(View.java:7035) 
at android.view.ViewRoot.performTraversals(ViewRoot.java:1045) 
at android.view.ViewRoot.handleMessage(ViewRoot.java:1727) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:123) 
at android.app.ActivityThread.main(ActivityThread.java:4627) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:521) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
at dalvik.system.NativeStart.main(Native Method) 

アンドロイドのバグを発見しましたか?私はコードをいくつか含めるつもりですが、どのコードを含めるか分かりません。それは何でもかまいません。

+0

あなたのメインアクティビティのコードとそれに伴うレイアウトXMLはどうですか? – dldnh

答えて

3

アンドロイドのバグを発見しましたか?

おそらくそうではありません。

これは何でもかまいません。

いいえ、できません。スタックトレースは、ArrayAdapterに問題があると指摘しています。問題があるArrayAdapterを作成しているか、それ自体がArrayAdapterを作成している別のもの(たとえば、AlertDialog)を作成しています。これが発生する場所にはコード内の場所が多すぎる可能性があり、おそらくコードの重要な部分にはArrayAdapterとは関係がありません。

次に、例外がcreateViewFromResource()で発生していることがわかります。メソッド名と例外からだけでは、ArrayAdapterコンストラクタで無効なレイアウトリソースIDを指定した可能性が最も高い問題が浮かび上がったはずです。

「無効なレイアウトリソースID」は、あなたの過ちではない可能性があることに注意してください。 Android開発でリソース関連のエラーが発生した場合は、プロジェクトをクリーンアップ(Eclipseのメインメニューから[プロジェクト]> [クリーニング]またはコマンドラインからant clean)してもう一度やり直してください。問題が解消すれば、人生は良いです。問題が解決しない場合は、ArrayAdapterコンストラクタをよく見てください。

the source code to ArrayAdaptercreateViewFromResource()をお試しいただければ幸いです。リンクはそのクラスの最新バージョンを指しますが、「支店」タブを使用して、実行中のAndroidのバージョンに対応するものを見つけることができます。場合によっては、ハードウェアで実行している場合は、デバイスメーカーがクラスを操作したため行番号が一致しませんが、メソッド名を指定すると、問題が存在する一般的な領域を見つけることができます。この場合、NullPointerExceptionを合理的に提出できるものは比較的少なく、あなた(またはビルドツール)が無効なレイアウトリソースIDを提供している可能性が最も高いケースです。

+0

あなたは正しいと思います。私はアレイアダプターを正しく操作していませんでした(2つのエラーがありました)。あなたの分析は非常に役に立つものでした。ありがとう! – MrGibbage

0

xmlファイル(レイアウトまたはマニフェスト)で問題が発生した場合、そのような例外が発生しました。アプリケーション起動時に発生します。

0

IDEに依存して、Eclipse/Intellij IDEAデバッガを使用してコードをトレースし、アクティビティのどこが失敗しているかを正確に見つけることができます。

0

私の経験上、これはAndroidのバグではなく、特定のデバイス上のAndroidの実装に問題があります。私は同じような問題を抱えていたので、私はずっと前に投稿しました - App crashing in Desire HDそこにはいくつかの議論がありますが参考になるかもしれません。

ただし、すべてのデバイスが適切にQAされていると仮定します。ハードウェアの問題(カメラ/センサー)以外にも、あなたのコードに何か問題がある以外の理由で、デバイスがほとんどクラッシュすることはありません。

ウェブからコードをコピー貼り付けるときにも非常に注意してください!

関連する問題