您如何解释反模糊的Android崩溃报告?

时间:2013-07-25 15:14:26

标签: proguard crash-reports deobfuscation

我从我的应用的Google Play管理区域下载了崩溃报告,通过retrace.sh运行以反复仿真Proguard映射,并在下面生成输出。

问题:

什么是未知来源?

showHeadershowPhoto等确实是我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

1 个答案:

答案 0 :(得分:7)

ProGuard已从混淆的应用程序中删除了可选属性SourceFile和LineNumberTable。结果,堆栈跟踪没有行号,导致一些歧义。 ReTrace打印出堆栈跟踪每一行的可能替代列表。

通过向proguard-project.txt添加以下行,您可以获得更容易理解的堆栈跟踪:

-renamesourcefileattribute MyApplication
-keepattributes SourceFile,LineNumberTable

请参阅ProGuard手册> ReTrace> Usage

请参阅ProGuard手册>例子> Producing useful stack traces