Интеграция Crashlytics в библиотечный проект
У меня есть проект библиотеки (проект библиотеки с пользовательским представлением), который не имеет никаких действий / служб. Я хочу интегрировать Crashlytics SDK в мою библиотеку. Когда я пытаюсь добавить его через плагин Crashlytics (значок на панели инструментов) для Android Studio, он просто остается включенным "Checking"
за "Select a kit to install"
, Вопрос в том, как добавить Crashlytics в мой проект библиотеки Android?
С уважением
2 ответа
Это можно сделать с помощью родительского приложения, которое потребляет модуль.
- Установите Firebase на родителя, используя обычные шаги.
- Добавьте это к
build.gradle
библиотечного модуля.
implementation 'com.google.firebase:firebase-core:16.0.1'
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9'
- Создайте класс в модуле библиотеки с этой статической переменной.
public static Crashlytics crash;
- В классе приложений родителей назначьте
Crashlytics.getInstance();
к этой переменной. - Модуль библиотеки может вызывать
crash.core.logException(e);
где-нибудь в библиотеке и отсылается на консоль Firebase - но включите нулевую проверку в случае, например. методы тестирования библиотеки вызываются без родительского приложения. - Другие необработанные исключения, например
throw new RuntimeException("test");
в библиотеке также должен отображаться в консоли.
На данный момент вам нужен модуль приложения, даже если вы собираетесь интегрировать Crashlytics только в свою библиотеку. Если у вас есть только библиотека, то нет разумного способа сделать это, по крайней мере, официально.
Смотрите ниже, чтобы сгенерировать необходимый материал сначала на стороне приложения, а затем переместиться (некоторые из них) к вашей библиотеке, например, к инициализации.
Когда вы подключаете набор, Fabric устанавливает код инициализации внутри базового проекта, а не в библиотеке. Вот как ты это сделаешь...
Создайте проект библиотеки Android со следующим gradle:
apply plugin: 'com.android.library'
<-- other project specific includes -->
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'io.fabric'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
compile('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') {
transitive = true;
}
}
В ваш базовый проект добавьте строку maven во все проекты / репозитории:
allprojects {
repositories {
jcenter()
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
}
}
Из вашего проекта приложения добавьте зависимость к вновь созданному проекту библиотеки. например:
compile project(':crashlytics_lib')