Crashlytics не загружает файл сопоставления - PullRequest
0 голосов
/ 22 ноября 2018

Я вижу сбои при сборке релиза в Crashlytics, но они все еще запутаны.Я использую:

implementation "com.google.firebase:firebase-core:16.0.5"
implementation "com.google.android.gms:play-services-base:16.0.1"
implementation "com.crashlytics.sdk.android:crashlytics:2.9.6"

и (уровень проекта)

    classpath 'com.android.tools.build:gradle:3.2.1'
    classpath 'com.google.gms:google-services:4.2.0'
    classpath 'io.fabric.tools:gradle:1.26.1' // Crashlytics plugin
    classpath "net.ltgt.gradle:gradle-apt-plugin:0.15"

Я следовал инструкциям на https://firebase.google.com/docs/crashlytics/get-deobfuscated-report,, в частности, я удалил -printmapping <path>/mapping.txt строка из config.txt

Когда я просматриваю журнал Crashlytics, я не вижу загрузки файла сопоставления.

Когда я запускаю сборку релиза для более ранней версии моего проекта, используя:

implementation "com.google.firebase:firebase-core:11.8.0"
implementation "com.google.android.gms:play-services-base:11.8.0"
implementation('com.crashlytics.sdk.android:crashlytics:2.8.0@aar') {
    transitive = true
}

и (уровень проекта)

    classpath 'com.android.tools.build:gradle:3.1.3'
    classpath 'com.google.gms:google-services:3.0.0'
    classpath 'io.fabric.tools:gradle:1.24.4'

тогда я вижу необработанные следы стека и сообщения загрузки карт в crashlytics.log:

2018-11-21 10:52:22.573 [DEBUG] (Daemon worker) com.crashlytics  - Deobfuscation file(s) uploaded.

Любые идеив чем дело?Я не вижу никаких журналов, связанных с файлом сопоставления, для последней (не работающей) версии в журнале Crashlytics, и я не вижу задачи загрузки gradle, работающей в выходных данных gradle, тогда как для более старой (рабочей) версии я вижуследующее:

:app:crashlyticsUploadDeobsRelease (Thread[Daemon worker Thread 2,5,main]) completed. Took 1.28 secs.

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Argh.Ну, было простое исправление, позор, что мне понадобилось так много времени, чтобы найти его.Я всегда (до сих пор) собираю и локально устанавливаю сборку релиза, используя ./gradlew iR (ярлык для ./gradlew installRelease).Вместо этого я попытался (после смущающего долгого времени) строить из Android Studio (Build > Generate Signed Bundle / Apk).Как только я это сделал, это сработало.

Я обновлю здесь, если и когда выясню, что выпуск на основе не-AS работает с Crashlytics.Между тем, если у вас возникли проблемы, взгляните на пример https://github.com/firebase/quickstart-android/tree/master/crash.. Вы можете взять его, зайти в свой собственный google-services.json и выпустить, как указано выше, затем отметьте crashlytics.log (см. Выше).

0 голосов
/ 22 ноября 2018

Вы читали здесь: https://docs.fabric.io/android/crashlytics/dex-and-proguard.html?

Я использую эти строки в моем файле proguard-rules.pro (внутри папки вашего приложения) для получения обфусцированных отчетов о сбоях

-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable
# prevent Crashlytics obfuscation
-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**

И обязательно не иметь эту строку в вашем файле proguard

-printmapping mapping.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...