Fabric不接受manifest.xml

时间:2017-02-15 17:51:01

标签: android android-manifest twitter-fabric

我试图通过将密钥放在未跟踪的字符串资源XML文件中来隐藏我的结构API密钥。但由于某种原因,结构不接受清单中的关键vie @string/FABRIC_API_KEY引用。

XML文件如下 -

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="NASA_API_KEY">abcd</string>
    <string name="FABRIC_API_KEY">xyz</string>
</resources>

清单中的参考 -

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

而且,这是我尝试构建的错误 -

  

错误:任务&#39;:app:fabricGenerateResourcesDebug&#39;执行失败。   Crashlytics Developer Tools错误。

我尝试通过BuildConfig访问API密钥,但仍然无效。

3 个答案:

答案 0 :(得分:3)

build.gradle添加manifestPlaceholders

defaultConfig {
    manifestPlaceholders = [
        FABRIC_API_KEY:"Your Key"
    ]
}

AndroidManifest.xml中使用

<meta-data
    android:name="io.fabric.ApiKey"
    android:value="${FABRIC_API_KEY}"
/>

答案 1 :(得分:2)

根据Fabric,

您应该停止在AndroidManifest.xml中添加此关键字段。相反,你应该在fabric.properties中添加它。

基本上,结构库将在合并的AndroidManifest.xml中自动合并此密钥。

参考:https://docs.fabric.io/android/fabric/settings/working-in-teams.html#android-projects

希望这会有所帮助。

答案 2 :(得分:0)

好的..我自己得到了答案......这是代码,它帮助了我:

请按照以下步骤操作: -

https://github.com/plastiv/CrashlyticsDemo/

大多数人都有问题运行gradle命令行,所以你可以像这样使用:1)打开终端。

2)转到您的项目工作区

3)./ gradlew

(注意如果权限拒绝错误使用此命令 - chmod 744 gradlew并再次运行./gradlew)

(4)./ gradlew assemble -P apiKey =您的结构api密钥

现在你可以完全保密你的api密钥,但记住你的fabric.properties看起来像那样的东西

fabric.properties: -

apiSecret =“您的布料密钥”apiKey =“您的布料密钥”

享受!