- В настоящее время нет никакого способа, чтобы получить сырые следы стека из 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)
С этой новой строки, вы должны быть в состоянии deobfuscate трассировки стека, как обычно.
Я знаю, что много работы, особенно, когда есть место несколько ошибок, но это текущий обходной путь, пока команда Firebase Краш Reporting решила включить функцию для загрузки сырых следов стеки или просто положить на строке в детали вместо того, чтобы обрезать это.
- Команда Firebase недавно выпустила плагин Crash Reporting для этой цели. The guide is here - Uploading ProGuard mapping files with Gradle
Честно говоря, я не смог включить этот плагин успешно, все еще запутавшись в руководстве. Я действительно надеюсь, что они сделают это так же просто, как в Fabric Crashlytics, просто добавив ext.enableCrashlytics = true
в файл build.gradle
.
Существует также другой способ, путем преднамеренного сбоя приложения перед выпуском, а затем сгенерировать новый APK выпуска без ошибки, а затем вы можете загрузить файл mapping.txt
в консоль Firebase Crash Reporting. :)
Можете ли вы опубликовать пример своей скопированной вручную трассировки стека из отчетов о сбоях в firebase? Я могу ответить на оба ваших вопроса. – Wilik
Если вы хотите эту возможность копировать трассировки стека из консоли Firebase Crash Reporting, пожалуйста, также сделайте запрос функции для него. Каждый отчет имеет значение: https://firebase.google.com/support/contact/bugs-features/ –