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 находится на странице настроек организации вашего проекта.