Fabric/Crashlytics Android为Apikey添加字符串资源会导致Crashlytics开发者工具错误

Fabric/Crashlytics Android为Apikey添加字符串资源会导致Crashlytics开发者工具错误,android,api-key,fabric.io,Android,Api Key,Fabric.io,在我的android应用程序中,我在 AndroidManifest.xml <meta-data android:name="io.fabric.ApiKey" android:value="@string/fabric_key" /> 任何帮助都将不胜感激。右键单击“工具包库”,然后选择“刷新工具包”,尝试刷新工具包库文件夹。我只是仔细查看了一下。这不起作用,因为android:value属性是按字面理解的。要使用资源id,您必须使用android:resource属性

在我的android应用程序中,我在

AndroidManifest.xml

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

任何帮助都将不胜感激。

右键单击“工具包库”,然后选择“刷新工具包”,尝试刷新工具包库文件夹。

我只是仔细查看了一下。这不起作用,因为
android:value
属性是按字面理解的。要使用资源id,您必须使用
android:resource
属性,但Fabric gradle插件根本没有使用此
android:resource
属性,因为它将清单作为XML文档而不是android清单类进行处理

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

为调试构建提供单独ApiKey的最简单方法 通过创建具有以下内容的
app/src/debug/AndroidManifest.xml
来利用清单合并(必须使用
工具:replace
属性才能工作):



位于您的项目页面。

我也收到了此问题。我还尝试将“apiKey”添加到fabric.properties文件夹,但这也没有解决问题。插件似乎直接从清单中提取API密钥,而不遵循字符串引用。情况仍然如此,Fabric没有改变这一点,因为Android Studio有非常有用的构建类型切换。我认为Fabric需要得到通知。仅仅获取字符串引用应该不难。字符串引用与Google Play服务的meta标记配合得很好!这个文件夹在哪里?
 <string name="fabric_key">XXXXXXXXXXXXXXXXXXXXXXXX</string>
Error:Execution failed for task ':app:fabricGenerateResourcesDevDebug'.
Crashlytics Developer Tools error.
<?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>