最近,我发布了一个已混淆的Android应用,其中启用了Firebase崩溃报告。应用程序一旦崩溃,由于我还没有上传映射文件,因此无法正确读取stacktrace。

所以我想下载堆栈跟踪并使用/retrace.sh -verbose mapping.txt ~/trace.txt对其进行模糊处理

但是我无法获取原始形式的stacktrace ...

所以我有两个问题:

  • 如何从他们网站上的Firebase崩溃报告选项卡中获取原始表单?
  • 在将应用发布到Play商店之前,如何上传映射文件?
  • 最佳答案

  • 当前,无法从Firebase崩溃报告中获取原始堆栈跟踪。因此,在查看每个错误的详细信息时,您需要手动复制它们。

  • 问题是,去模糊处理不适用于从Firebase崩溃报告中复制的堆栈跟踪字符串,这是由于堆栈跟踪每一行开头的语句缺少所致。

    例如,这是您从Firebase崩溃报告中获得的
    Exception java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.example.models.User.getUserName()' on a null object reference
    com.example.views.adapters.ExampleAdapter.a (SourceFile:110)
    com.example.views.adapters.ExampleAdapter.a (SourceFile:31)
    b.a.a.a.b.a (SourceFile:54)
    b.a.a.a.b.a (SourceFile:54)
    android.support.v7.widget.RecyclerView$a.a (SourceFile:6279)
    android.support.v7.widget.RecyclerView$a.b (SourceFile:6312)
    

    您只需要在包含SourceFile字符串的每一行的开头处的
    处添加。结果应如下所示
    Exception java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.example.models.User.getUserName()' on a null object reference
    at com.example.views.adapters.ExampleAdapter.a (SourceFile:110)
    at com.example.views.adapters.ExampleAdapter.a (SourceFile:31)
    at b.a.a.a.b.a (SourceFile:54)
    at b.a.a.a.b.a (SourceFile:54)
    at android.support.v7.widget.RecyclerView$a.a (SourceFile:6279)
    at android.support.v7.widget.RecyclerView$a.b (SourceFile:6312)
    

    使用这个新字符串,您应该能够像往常一样对堆栈跟踪进行模糊处理。

    我知道,这是很多工作,尤其是当发生多个错误时,但这是当前的解决方法,直到Firebase Crash Reporting团队决定启用某个功能来下载原始堆栈跟踪或只是将放在字符串的详细信息上,而不是修剪掉。
  • Firebase团队最近为此发布了一个崩溃报告插件。 The guide is here - Uploading ProGuard mapping files with Gradle

  • 老实说,我一直无法成功启用此插件,但仍然被指南弄糊涂了。我真的希望他们通过在ext.enableCrashlytics = true文件中添加build.gradle来使其像在Fabric Crashlytics中一样简单。

    还有另一种方法,在发行前故意使应用程序崩溃,然后生成没有错误的新发行版APK,然后可以将mapping.txt文件上传到Firebase Crash Reporting控制台。 :)

    关于android - 从Firebase崩溃报告中获取原始的堆栈跟踪,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41649046/

    10-11 22:26
    查看更多