Мы программируем приложение для Android и пытаемся внедрить Crashlytics в наше приложение.
У нас проблемы разных типов. Версия, которую мы использовали: версия студии Android: 3.3
Версия Gradle: путь к классу 'com.android.tools.build:gradle:3.3.1'
Плагин: Fabric для Android studio v4.3.0
Реализация: реализация ('com.crashlytics.sdk.android:crashlytics:2.9.9') {transitive = true} реализация ('io.fabric.sdk.android:fabric:[email protected]') {transitive = true}
gradle-wrapper.properties: distributionUrl = https://services.gradle.org/distributions/gradle-5.2.1-all.zip
Первая проблема:
Когда мы внедряем Crashlytics, вы знаете, что у разработчика есть 3 шага. Мы не можем пропустить 2,3. Шаг, потому что мы не скомпилировали наше приложение. Мы получаем две основные ошибки:
Ошибка 1:
Это приложение опирается на Crashlytics. Пожалуйста, зарегистрируйтесь для доступа на https://fabric.io/sign_up,
Ошибка 2:
E/CrashlyticsCore: The Crashlytics build ID is missing.This occurs when
Crashlytics tooling is absent from your app build configuration.
Please review Crashlytics onboarding instructions and ensure you have a valid Crashlytics account.
Поэтому мы отключили мод отладки, чтобы завершить реализацию Crashlytic.
Crashlytics crashlyticsKit = new Crashlytics.Builder()
.core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
.build();
Fabric.with(this, crashlyticsKit); // Tod from Fabric suggested in stackoverflow
И реализация завершена.
Но мы не хотим этого делать. Потому что, когда мы делаем сбой, он не сообщает Crashlytics или Firebase. Мы хотим получить также отладочные моды, сбои.
Когда мы удаляем → ....disabled(BuildConfig.DEBUG)
- он снова показывает: Ошибка 1, Ошибка 2.
Вторая проблема:
В градле; применить плагин: 'io.fabric комментируется, когда мы комментируем, мы получаем
Ошибка 3:
WARNING: API 'variant.getExternalNativeBuildTasks()' is obsolete and has been replaced with 'variant.getExternalNativeBuildProviders()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoidance.
To determine what is calling variant.getExternalNativeBuildTasks(), use -Pandroid.debug.obsoleteApi=true on the command line to display a stack trace.
Affected Modules: app
Когда мы искали его, эта ошибка была связана с новым Android Studio Gradle. Поэтому нам нужно прокомментировать "применить плагин: fabric.io". Нет хорошего решения по этому поводу.
Для запуска приложения мы не можем удалить:
new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()
: (из-за ошибки1 ошибка2)
Поэтому мы пытаемся включить отчет разными способами:
Что мы уже добавили?
1. Включить в Gradle:
buildTypes {
debug {
manifestPlaceholders = [crashlyticsEnabled: true]
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
manifestPlaceholders = [crashlyticsEnabled: false]
}
2. Включить в манифест
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="true" />
3.Enable в АБР
adb shell setprop log.tag.Fabric DEBUG
adb shell setprop log.tag.CrashlyticsCore DEBUG
Но все же Crashlytics или Firebase не получают никаких отчетов об ошибках отладки? Мы ожидаем ваших решений.