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

问题描述 投票:9回答:2

在我的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.

任何帮助,将不胜感激。

android api-key fabric.io
2个回答
0
投票

通过右键单击“kit-libs”然后选择刷新工具包,尝试刷新kit-libs文件夹。


0
投票

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

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

为调试构建提供单独的Api密钥的最简单方法

通过使用以下内容创建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页面中。

© www.soinside.com 2019 - 2024. All rights reserved.