I downloaded a crash report from my app's Google Play admin area, ran it through retrace.sh
to deobfuscate the Proguard mapping, and it produced the output below.
Questions:
What is Unknown Source?
showHeader
, showPhoto
, etc. are indeed methods in my SummaryFragment
class, but why are they listed in the order shown? These methods do not follow any sort of logical or execution order in my code.
In which method was the NPE actually thrown?
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
ProGuard has removed the optional attributes SourceFile and LineNumberTable from the obfuscated application. As a result, the stack traces don't have line numbers, causing some ambiguity. ReTrace prints out a list of possible alternatives for each line of the stack trace.
You can get stack traces that are easier to interpret by adding the following lines to your proguard-project.txt
:
-renamesourcefileattribute MyApplication
-keepattributes SourceFile,LineNumberTable
See the ProGuard manual > ReTrace > Usage.
See the ProGuard manual > Examples > Producing useful stack traces
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With