Как инициализировать Crashlytics в Fabric.io?

Ищу помощи. Я только что обновил свое приложение для Android до Fabric, и теперь приложение выдает ошибку в этой строке:

Crashlytics.start(getApplicationContext());

Gradle: error: cannot find symbol method start(Context)

Я попытался закомментировать эту строку, но тогда сбои не регистрируются. Как инициализировать Crashlytics в новой структуре Fabric? Я что-то упускаю?

Заранее спасибо за вашу помощь.


person Nidhi Shah    schedule 23.10.2014    source источник
comment
Fabric внедрил эту строку кода в действие средства запуска, не удаляя предыдущий код из файла приложения. Отсюда и вся путаница. Удалите эту строку из вашего проекта: Crashlytics.start(getApplicationContext()); чтобы решить проблему.   -  person Nidhi Shah    schedule 07.12.2014


Ответы (2)


Поскольку Crashlytics теперь является частью Fabric, процесс инициализации изменился, но остался простым. Вместо использования Crashlytics.start() теперь вы должны использовать, но в Создании приложения:

public class App extends Application {

    ...

    @Override
    public void onCreate() {
        super.onCreate();
        Fabric.with(this, new Crashlytics());
    }

    ...

}

Для более богатого примера посмотрите, как работает канонический образец приложения Cannonball:

public class App extends Application {

    ...

    private TwitterAuthConfig authConfig;

    ...

    @Override
    public void onCreate() {
        super.onCreate();
        authConfig = new TwitterAuthConfig(BuildConfig.CONSUMER_KEY, BuildConfig.CONSUMER_SECRET);
        Fabric.with(this, new Crashlytics(), new Twitter(authConfig), new MoPub());
    }

    ...

}

Этот код доступен по адресу: https://github.com/twitterdev/cannonball-android/blob/master/app/src/main/java/io/fabric/samples/cannonball/App.java#L96.-L98

person Cipriani    schedule 23.10.2014
comment
Откуда вы взяли эту информацию? В официальной документации ничего по этому поводу не нашел. - person akhy; 04.12.2014
comment
@akhyar, вероятно, пример приложения для пушечного ядра, которое было представлено на конференции в Твиттере, где они анонсировали Fabric. - person CQM; 04.12.2014
comment
Могу ли я позже (после вызова Fabric.with(this, new Crashlytics());) использовать что-то вроде этого: Crashlytics.setString(key, value); ??? - person Dmitry Isakov; 22.04.2015
comment
@Luis Cipriani Можете ли вы помочь мне решить эту проблему stackoverflow.com/questions/33126132/ - person SSS; 15.10.2015
comment
Нужно ли добавлять Fabric.with(this, new Crashlytics()) внутри метода oncreate каждой активности?? - person Sudhanshu Gaur; 26.04.2016
comment
Знаете ли вы, почему в моем случае активная сессия всегда нулевая? Вот как я проверяю сеанс: TwitterSession twitterSession = TwitterCore.getInstance().getSessionManager().getActiveSession(); и Fabric инициализируется следующим образом: TwitterAuthConfig authConfig = new TwitterAuthConfig(twitterKey, twitterSecretKey); Fabric.with(это, новый Twitter(authConfig)); - person Ne AS; 29.03.2017
comment
@Luis Cipriani, не могли бы вы сказать мне, включаем ли мы Fabric.with(this, new Crashlytics()); внутри класса приложения нам все еще нужно добавлять Fabrid.with() в каждое действие? - person Jay Dangar; 06.09.2018

В последней версии инициализация выполняется автоматически ContentProvider https://firebase.google.com/docs/crashlytics/upgrade-sdk?platform=android

 import com.google.firebase.crashlytics.FirebaseCrashlytics

// ...

// Explicit initialization of Crashlytics is no longer required.

// OPTIONAL: If crash reporting has been explicitly disabled previously, add:
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true)
person Andrii Kovalchuk    schedule 12.05.2020