在我的android应用程序中,我在
中添加了以下字符串资源AndroidManifest.xml
<meta-data
android:name="io.fabric.ApiKey"
android:value="@string/fabric_key" />
和string .xml
<string name="fabric_key">XXXXXXXXXXXXXXXXXXXXXXXX</string>
当我尝试构建项目时,我得到以下错误:
Error:Execution failed for task ':app:fabricGenerateResourcesDevDebug'.
Crashlytics Developer Tools error.
右键单击"kit-libs",然后选择" refresh kits ",尝试刷新kit-libs文件夹。
我刚刚仔细研究了一下。这不起作用,因为android:value
属性是从字面上理解的。要使用资源id,你必须使用android:resource
属性,但Fabric gradle插件根本不使用这个android:resource
属性,因为它将manifest作为XML文档处理,而不是作为Android manifest类。
在反编译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位于您的项目的组织设置页面