У меня проблема с моими сообщениями о сбоях от Fabric Crashlytics, когда я включаю Dexguard в свой проект.
Я включил Dexguard в свой проект, и он работает очень хорошо. Затем я выполнил инструкции на этой странице и добавил упомянутые конфигурации, чтобы позволить файлу дефискурить мои стеки и показать соответствующие отчеты о сбоях. Здесь, как я применяю плагины ткани и dexguard в моем основном модуле build.gradle
:
apply plugin: 'com.android.application'
apply plugin: 'dexguard'
apply plugin: 'io.fabric'
И вот конфигурации в proguard-project.txt
:
# Fabric
#############################################################################
-keepattributes *Annotation*,SourceFile,LineNumberTable
-keep public class * extends java.lang.Exception
-keepresourcexmlelements manifest/application/[email protected]=io.fabric.ApiKey
-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**
#############################################################################
И вот как я использую proguard-project.txt
в моей версии сборки:
buildTypes{
debug{
proguardFile getDefaultDexGuardFile('dexguard-debug-shrink.pro')
proguardFile 'proguard-project.txt'
}
release{
proguardFile getDefaultDexGuardFile('dexguard-release.pro')
proguardFile 'proguard-project.txt'
proguardFile 'dexguard-project.txt'
if(new File("$projectDir/../local.properties").exists()){
signingConfig signingConfigs.release
}
}
}
Но когда в сборке релизов встречается сбой, имя файла, в котором произошел сбой, отсутствует, но все остальное работает правильно, а stacktrace почти понятен. Вот пример отчета о сбое:
Как вы можете видеть в отчете о сбое, в стеке отсутствует только имя файла. Другие описания, такие как номера строк и имена методов, полностью в порядке.
Хотя я использую полные имена методов, такие как ir.X.ui.XMainActivity.throwSomething
и номера строк перед Unknown Source
, я могу заключить имя файла, в котором произошла ошибка, я бы хотел, чтобы мои стеки отображали файл имена и быть полностью описательными темами. Я пробовал много вариантов и много проб и ошибок, но проблема все еще существует.
Есть что-то, чего я не хватает? Как я могу решить эту проблему?
Я использую версию 8.1.0.7
Dexguard, версию 1.21.7
плагина Fabric и версию 2.9.0
библиотеки Crashlytics.
Я обновил плагин Fabric до версии 1.25.1
и библиотеки Crashlytics до версии 2.9.1
но проблема все еще существует.
Я обновил плагин Fabric до версии 1.25.2
, установил версию инструментов до 27.0.3
и версию плагина gradle до 3.1.0
но проблема все еще существует.