2013-07-25 9 views
5

私のアプリのGoogle Play管理領域からクラッシュレポートをダウンロードし、retrace.shまで実行してProguardマッピングを解読し、以下の出力を生成しました。難解なAndroidのクラッシュレポートをどのように解釈しますか?

質問:

不明なソースとは何ですか?

showHeader,showPhotoなどは実際に私のSummaryFragmentクラスのメソッドですが、示された順序でリストされているのはなぜですか?これらのメソッドは、私のコードでは論理的にも実行の順序にも従いません。

NPEは実際にどの方法でスローされましたか?

Caused by: java.lang.NullPointerException 
at com.myapp.SummaryFragment.selectMenuItemAuth(Unknown Source) 
              showHeader 
              photoButtonClicked 
              showPhoto 
              nameButtonClicked 
              deleteByID 
              access$0 
at com.myapp.SummaryFragment.onActivityCreated(Unknown Source) 
at android.support.v4.app.Fragment.performActivityCreated(Unknown Source) 
at android.support.v4.app.FragmentManagerImpl.moveToState(Unknown Source) 
               moveToState 
               moveToState 
               moveToState 

答えて

7

ProGuardのは、難読化アプリケーションからオプションの属性SOURCEFILEとLineNumberTableを除去しました。その結果、スタックトレースに行番号がなく、あいまいさが発生します。 ReTraceは、スタックトレースの各行に対して可能な選択肢のリストを出力します。

あなたのproguard-project.txtに以下の行を追加して解釈するのが容易であるスタックトレースを取得することができます。

-renamesourcefileattribute MyApplication 
-keepattributes SourceFile,LineNumberTable 

は、ProGuardのマニュアルを参照してください>帰>Usage

ProGuardマニュアルを参照>例>Producing useful stack traces

関連する問題