Fabric / Crashlytics Android为Apikey添加字符串资源会导致Crashlytics Developer Tools Error

时间:2015-10-12 17:13:37

标签: android api-key fabric.io

在我的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 个答案:

答案 0 :(得分:0)

右键单击“kit-libs”,然后选择刷新套件,尝试刷新kit-libs文件夹。

答案 1 :(得分:0)

我只是仔细研究过这个问题。这不起作用,因为android:value属性是字面意思。要使用资源ID,您必须使用android:resource属性,但Fabric gradle插件根本不使用此android:resource属性,因为它将清单处理为XML文档而不是作为Android Manifest类。

在反编译Fabric源代码并弄清DefaultManifestDataStandardAndroidProject类如何工作之后,我确认了以下内容:

为调试版本提供单独的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>

您的debug ApiKey位于项目的Organization Settings页面中。