ManifestPlaceholder将NumericString转换为实际数字?

时间:2017-03-10 03:20:25

标签: android android-gradle android-manifest build.gradle

我使用ManifestPlaceholder在我的gradle.build中存储了一些Key,最终可以在AndroidManifest.xml中使用。它适用于我的Fabric.io密钥,但不适用于我的Facebook密钥。

原因是,在我的Fabric.io键中,它会联系数字和字母。所以它被保存为String。但由于Facebook密钥是全部数字(尽管它是字符串),它会被转换为其他随机数。

下面更清楚的插图。

正如预期的那样如果我将ManifestPlaceholder设置为

    manifestPlaceholders = [facebook_app_id: "12345678901234G"]

在我的AndroidManifest.xml中

    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="${facebook_app_id}" />

我将在生成的AndroidManifest.xml中保留我的ID

    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="12345678901234G" />

然而如果我设置了完全数字的内容,如下所示

    manifestPlaceholders = [facebook_app_id: "123456789012345"]

虽然我的AndroidManifest.xml是相同的

    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="${facebook_app_id}" />

在我生成的AndroidManifest.xml中,它变为如下所示。

    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="1457557760.000000" />

为什么它会改变我的数字字符串?我怎么能把它保存为String?

1 个答案:

答案 0 :(得分:1)

我使用Android gradle插件2.3.0和Gradle插件版本3.4.1验证了这是否正常工作。

enter image description here