Интеграция 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')
Другие вопросы по тегам