Хобрук: Ваш путь к мастерству в программировании

Firebase Crashlytics не поддерживает NDK?

Если вы хотите использовать Crashlytics NDK, вам нужно вызвать Fabric.with(this, new Crashlytics(),new CrashlyticsNdk());, но Firebase Crashlytics вызывает Fabric.with(context, new Kit[]{new Crashlytics()}); при запуске. В результате вы не можете использовать Crashlytics NDK.

Как я могу избежать этой проблемы?

public class CrashlyticsInitProvider extends ContentProvider {
private static final String TAG = "CrashlyticsInitProvider";

public CrashlyticsInitProvider() {
}

public boolean onCreate() {
    Context context = this.getContext();
    FirebaseInfo firebaseInfo = new FirebaseInfo();
    CrashlyticsInitProvider.EnabledCheckStrategy enabledCheckStrategy = new ManifestEnabledCheckStrategy();
    if (this.shouldInitializeFabric(context, firebaseInfo, enabledCheckStrategy)) {
        try {
            Fabric.with(context, new Kit[]{new Crashlytics()}); // !here
            Fabric.getLogger().i("CrashlyticsInitProvider", "CrashlyticsInitProvider initialization successful");
        } catch (IllegalStateException var5) {
            Fabric.getLogger().i("CrashlyticsInitProvider", "CrashlyticsInitProvider initialization unsuccessful");
            return false;
        }
    }

    return true;
}

Ответы:


1

Добавьте это в свой AndroidManifest.xml:

<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />

Затем инициализируйте Crashlytics вручную в своем подклассе Application:

Fabric fabric = new Fabric.Builder(this)
                .kits(new Crashlytics(), new CrashlyticsNdk())
                .build();
Fabric.with(fabric);

См. https://firebase.google.com/docs/crashlytics/force-a-crash#enable_debug_mode

11.07.2018
  • Откуда взялся CrashlyticsNdk? Он не включен в зависимость implementation com.crashlytics.sdk.android:crashlytics:2.9.5 firebase crashlytics. 30.10.2018
  • @RomanSamoylenko В твоем build.gradle: implementation('com.crashlytics.sdk.android:crashlytics:2.9.5@aar') { transitive = true } implementation('com.crashlytics.sdk.android:crashlytics-ndk:2.0.5@aar') { transitive = true } 06.11.2018
  • Что делает firebase_crashlytics_collection_enabled? Зачем отключать? 04.04.2019

  • 2

    Отчеты о сбоях Android NDK уже поддерживаются Firebase Crashlytics SDK. После настройки Crashlytics с помощью Firebase Crashlytics SDK вы можете добавить в свой app/build.gradle следующее:

    apply plugin: 'com.android.application'
    apply plugin: 'com.google.firebase.crashlytics'
    
    dependencies {
        // ...
    
        // Add the Crashlytics NDK dependency.
        implementation 'com.google.firebase:firebase-crashlytics-ndk:17.0.0-beta01'
    }
    
    // …
    android {
        // ...
        buildTypes {
            release {
                // Add this extension
                firebaseCrashlytics {
                    // Enable processing and uploading of native symbols to Crashlytics
                    // servers. By default, this is disabled to improve build speeds.
                    // This flag must be enabled to see properly-symbolicated native
                    // stack traces in the Crashlytics dashboard.
                    nativeSymbolUploadEnabled true
                }
            }
        }
    }
    

    Подробнее см. Здесь: https://firebase.google.com/docs/crashlytics/ndk-reports-new-sdk

    25.03.2020
    Новые материалы

    Учебные заметки JavaScript Object Oriented Labs
    Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

    Разбор строк запроса в vue.js
    Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

    Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
    «Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

    Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
    каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

    Как настроить Selenium в проекте Angular
    Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..