Android / Fabric, добавляющий строковый ресурс для Apikey, вызывает ошибку Crashlytics Developer Tools.

В моем приложении для Android я добавил следующий строковый ресурс в

AndroidManifest.xml

 <meta-data
  android:name="io.fabric.ApiKey"
 android:value="@string/fabric_key" />

и в strings.xml

 <string name="fabric_key">XXXXXXXXXXXXXXXXXXXXXXXX</string>

когда я пытаюсь построить проект, я получаю следующую ошибку:

Error:Execution failed for task ':app:fabricGenerateResourcesDevDebug'.
Crashlytics Developer Tools error.

Любая помощь будет оценена.

2 ответа

Попробуйте обновить папку kit-libs, щелкнув правой кнопкой мыши "kit-libs" и выбрав "Обновить комплекты".

Я просто внимательно посмотрел на это. Это не работает, потому что android:value атрибут воспринимается буквально. Чтобы использовать идентификатор ресурса, вы должны будете использовать android:resource атрибут, но плагин Fabric gradle не использует это android:resource атрибут вообще, потому что он обрабатывает манифест как документ XML, а не как класс манифеста Android.

После декомпиляции исходного кода Fabric и выяснения, как DefaultManifestData а также StandardAndroidProject На занятиях работы я подтвердил следующее:

Самый простой способ предоставить отдельный ApiKey для отладочных сборок

Используйте манифест слияния путем создания app/src/debug/AndroidManifest.xml со следующим содержанием (вы должны использовать tools:replace атрибут, чтобы это работало):

<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <application>
        <!-- Meta-data -->
        <meta-data
            android:name="io.fabric.ApiKey"
            android:value="[yourDebugApiKey]"
            tools:replace="android:value"/>
    </application>

</manifest>

Ваш отладочный ApiKey находится на странице настроек организации вашего проекта.

Другие вопросы по тегам