- В настоящее время невозможно получить необработанные трассировки стека из отчетов о сбоях Firebase. Поэтому вам нужно копировать их вручную при просмотре деталей каждой ошибки.
Проблема в том, что деобфускация не работает с этой строкой трассировки стека, скопированной из отчетов о сбоях Firebase, из-за отсутствия оператора at в начале каждой строки трассировки стека.
Например, это то, что вы получаете от отчетов о сбоях 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)
Вам просто нужно добавить at в начале каждой строки, содержащей 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 не решила включить функцию для загрузки необработанных трассировок стека или просто поместить строку at в деталях вместо того, чтобы обрезать это.
- Команда Firebase совсем недавно выпустила для этой цели плагин Crash Reporting. Руководство здесь — Загрузка файлов сопоставления ProGuard с помощью Gradle
Честно говоря, я не смог успешно включить этот плагин, все еще сбит с толку руководством. Я очень надеюсь, что они сделают это так же просто, как в Fabric Crashlytics, просто добавив ext.enableCrashlytics = true
в файл build.gradle
.
Есть и другой способ: намеренно завершить работу приложения перед выпуском, затем создать новый выпуск APK без ошибки, а затем загрузить файл mapping.txt
в консоль Firebase Crash Reporting. :)
person
Wilik
schedule
14.01.2017