Мы программируем приложение для Android и пытаемся внедрить Crashlytics в наше приложение.
У нас есть разные типы проблем. Версия, которую мы использовали: Версия Android studio: 3.3
Версия Gradle: путь к классам 'com.android.tools.build:gradle:3.3.1'
Плагин: Fabric for Android studio v4.3.0
Реализация: реализация ('com.crashlytics.sdk.android:crashlytics:2.9.9') {transitive = true} реализация ('io.fabric.sdk.android:fabric:1.4.0@aar') {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's build configuration.
Please review Crashlytics onboarding instructions and ensure you have a valid Crashlytics account.
Итак, нам пришлось отключить «Debug Mod», чтобы завершить реализацию 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.
Вторая проблема:
В градиенте; примените plugin: '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()
: (из-за Error1 Error2)
Поэтому мы стараемся включить отчет разными способами:
Что мы пытаемся добавить до сих пор?
1. Включить в градиенте:
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. Включить в ADB
adb shell setprop log.tag.Fabric DEBUG
adb shell setprop log.tag.CrashlyticsCore DEBUG
Но все же Crashlytics или Firebase не получают отчетов о сбоях отладки.
Мы ждем ваших решений.
Мне удалось получить это исправлено без добавления android.debug.obsoleteApi=true
в gradle.properties
.
Я в основном подключил 3 разновидности к разным Firebase
проектам, используя правильную конфигурацию вкуса и предоставленный google-services.json
файл.
Что не хватает вашему файлу gradle по сравнению с моим, так это:
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath "com.google.gms:google-services:$google_services_version" // google-services plugin
classpath "io.fabric.tools:gradle:$fabric_tools_version"
}
apply plugin: "io.fabric"
И наконец: implementation "com.google.firebase:firebase-crash:16.2.1"
Я знаю Fabric
, что в этом году он закроется, но, запустив приложения таким образом, они Firebase
без проблем подключились к консоли.
Что касается конфигурации аромата, я загрузил три разных json
файла (у меня есть 3 варианта) и добавил их в корневой каталог каждого аромата. Например:
flavor1:
assets
java
res
AndroidManifest
google-services.json (for flavor1)
flavor2:
assets
java
res
AndroidManifest
google-services.json (for flavor2)
И это все. Надеюсь, это кому-то поможет.
Эта статья взята из Интернета, укажите источник при перепечатке.
Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.
я говорю два предложения