#android #firebase #gradle #crashlytics
#Android #firebase #gradle #crashlytics
Вопрос:
Я добавил в свой проект библиотеку firebase crashlytics и плагин crashlytics gradle
classpath("com.google.firebase:firebase-crashlytics-gradle:2.3.0")
...
plugins {
...
id("com.google.firebase.crashlytics")
...
}
...
implementation("com.google.firebase:firebase-crashlytics:17.2.1")
implementation("com.google.firebase:firebase-analytics:17.5.0")
Я явно установил mappingFileUploadEnabled
для своих типов сборки релиза с
getByName("release").apply {
firebaseCrashlytics.mappingFileUploadEnabled = true
}
Но файл сопоставления, к сожалению, не загружен. Я проверяю это в консоли firebase crashlytics — на мои тестовые сбои указывает stacktrace Unknown Source:55
.
Вот что я нашел в журналах gradle:
[ОТЛАДКА] [com.google.включена загрузка файла сопоставления firebase.crashlytics: false; идентификатор: 00000000000000000000000000000000
Похоже, мой mappingFileUploadEnabled
флаг не имеет никакого эффекта.
Нужно ли мне сделать что-то еще, чтобы загрузка файла сопоставления работала?
Я также не вижу firebaseUpload*ReleaseProguardMapping
задач в своем проекте. Не уверен, что он должен быть создан.
Обновить
Я попытался создать пустой проект Android с нуля и добавил firebase-crashlytics
его туда. Кажется, это работает, и я вижу uploadCrashlyticsMappingFile
задачи, созданные для всех типов сборки. Итак, на данный момент похоже firebase-crashlytics
, что плагин gradle работает некорректно для моего проекта и не создает задачи, которые он должен создавать. У кого-нибудь есть идея, почему?
Комментарии:
1. Как вы проверили это на консоли Firebase?
2. Я не проверял, загружен ли файл сопоставления (вероятно, это невозможно сделать). Вместо этого я проверил, были ли деобфускированы отправленные мной сбои. Предполагая, что сбои деобфускированы, тогда файл сопоставления был загружен правильно
Ответ №1:
Сегодня я узнал, что если вы применяете firebase-crashlytics
плагин gradle декларативно, используя plugins {}
блок, задачи загрузки файла сопоставления не создаются. Чтобы заставить его работать, мне пришлось применить плагин в обязательном порядке, используя устаревшую apply(..)
функцию. Это то, что у меня есть в проекте сейчас:
apply(plugin = "com.google.firebase.crashlytics")
plugins {
//other plugins
}
После внесения этого изменения загрузка файла сопоставления работает нормально.
Обновить
Я понял, что если я перемещу crashlytics
плагин в нижнюю часть своего plugins
раздела, у меня будет тот же эффект. Теперь это выглядит так:
plugins {
//all other plugins
id("com.google.firebase.crashlytics")
}