Работает ли Crashlytics с Google Play Instant, и если да, то как правильно настроить свой проект?
Как интегрировать Crashlytics с Android Instant Apps?
Ответ 1
Да, Crashlytics действительно работает с Android Instant Apps, на самом деле это рекомендуемое решение для отчетов о сбоях на этом этапе, поскольку оно было протестировано и отлично работает.
Для настройки:
Шаг 1
Откройте файл build.gradle
в базовом функциональном модуле и следуйте инструкциям на сайте публичных документов, чтобы настроить Crashlytics как обычно.
Шаг 2
На верхнем уровне вашего базового функционального модуля build.gradle
добавьте следующий флаг Crashlytics:
...
android {
...
}
crashlytics { instantAppSupport true }
...
Шаг 3 (необязательно, но рекомендуется)
Добавить зависимость библиотеки мгновенных приложений в проекте базовой библиотеки build.gradle
, если она еще не указана в docs:
compile 'com.google.android.instantapps:instantapps:1.1.0'
Примечание:, чтобы использовать эту зависимость, вам нужно будет добавить новый maven.google.com
репозиторий в ваши файлы gradle, если вы еще этого не сделали (см. здесь для подробностей).
Затем в вашем коде после настройки Crashlytics задайте логическое значение для журнала, если текущий запуск является Instant App:
Crashlytics.setBool("InstantApp", InstantApps.isInstantApp(context));
Дополнение от Aug 2017 - Новая проблема, которая прерывает поддержку
Это приложение основано на Crashlytics. Подпишитесь на https://fabric.io/sign_up, установите инструмент для создания Android и спросите чтобы пригласить вас в эту организацию.
Пока проблема не исправлена, попробуйте сделать это как обходной путь: после сборки найдите файл com_crashlytics_build_id.xml
, откройте его, скопируйте <string>
туда, где содержится ваш ключ Fabric, и вставьте его в свой обычный strings.xml
для вашего функционального модуля. Затем перестройте и запустите.
Обновление от 15 ноября 2017 г. - Исправлена проблема
Вышеупомянутая проблема теперь исправлена с использованием плагина Fabric gradle v1.24.5. Поскольку ваш файл gradle должен иметь:
classpath 'io.fabric.tools:gradle:1.+'
Вам не нужно ничего делать, кроме как синхронизировать сборку, чтобы вытащить обновленный плагин с помощью исправления.
Ответ 2
Кроме того, что говорит принятый ответ, мне также необходимо добавить следующие строки в файле build.gradle модуля appk (apk), чтобы запустить его.
repositories {
maven { url 'https://maven.fabric.io/public' }
}
Ответ 3
Я только что протестировал с 1.24.5, и все было в порядке.
Мне удалось настроить свой проект следующим образом:
- в базовом модуле: https://fabric.io/kits/android/crashlytics/install
- Как интегрировать Crashlytics с Android Instant Apps?
- добавить в base/build.gradle:
- crashlytics {instantAppSupport true}
- compile 'com.google.android.instantapps: instantapps: 1.1.0' (* 1.0.0 также работает)
- дополнительно добавить в базовый модуль Класс приложения:
- Crashlytics.setBool( "InstantApp", InstantApps.isInstantApp(контекст));
- добавить в base/build.gradle:
Мое тестовое мгновенное приложение построено, я вызвал сбой, и моя панель зарегистрировала его.
Если какая-либо проблема не устранена, сообщите в Трекер ошибок Google, которые они откроют для проверки.