Плагин Android Studio не находит установленный Crashlytics

Я использую версию 2.3.2 (последнюю на данный момент) и столкнулся со следующей проблемой: когда я инициализирую crashlytics внутри класса Application, плагин не разрешает установку. Он просит меня внести изменения в код и добавить логику инициализации в Activity точки входа.

Что меня беспокоит, так это правильный путь. Приложение Cannonball имеет инициализацию в своем классе приложения. С другой стороны, похоже, что плагин ожидает, что он будет в Activity. Вот как это выглядит в приложении Cannonball:

public class App extends Application {
...
    @Override 
    public void onCreate() { 
    ...
        Fabric.with(this, new Crashlytics(), new Twitter(authConfig), new MoPub());
    }
}

Где, как и в моем приложении, плагин студии Android предлагает перейти к

public class Splash extends ActionBarActivity {
...
    @Override 
    protected void onCreate(Bundle savedInstanceState) {
        Fabric.with(this, new Crashlytics(), new Twitter(authConfig), new MoPub());
    ...
    }
}

person Vasil Nonchev    schedule 16.06.2015    source источник


Ответы (2)


Я думаю, что плагин по умолчанию помещает его в любое ваше основное действие. Я просто удалил его и поместил следующие строки в свой класс приложения:

CrashlyticsCore core = new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build();
Fabric.with(this, new Crashlytics.Builder().core(core).build());

Вы можете удалить «.disabled (BuildConfig.DEBUG)», если хотите. Это просто отключает плагин, если вы находитесь в режиме отладки.

person joelreeves    schedule 17.06.2015

Вы должны включить

compile('com.crashlytics.sdk.android:crashlytics:2.3.1@aar') {
        transitive = true;
}

под зависимостью в вашем файле build.gradle приложения

person Abhishek Batra    schedule 16.06.2015
comment
Я включил это. Я только переключаю место, где инициализируется crashlytics. Если он находится внутри класса Activity, плагин находит его. Если он находится внутри класса Application, плагин его не находит. - person Vasil Nonchev; 17.06.2015