Android - 不同构建类型的清单占位符

时间:2014-06-26 07:04:59

标签: android gradle android-manifest

我对Gradle + Android Build中明显占位符的新可能性大肆宣传。我在gradle文档中发现我可以像这样指定我自己的占位符:

productFlavors {
    free {
    }
    pro {
        manifestPlaceholders = [ activityLabel:"proName" ]
    }
}

但是我希望有一个占位符依赖于构建类型而不是产品风格。当我将该占位符规范插入到构建类型设置中时,它不起作用。你知道如何实现这个目标吗?因为在我看来,愚蠢的有三种构建类型和三种与之相关的风格。感谢

2 个答案:

答案 0 :(得分:7)

这是我针对不同产品口味的解决方案:

的build.gradle:

productFlavors {
normal {
    applicationId "mobi.cwiklinski.urc"
    buildConfigField "String", "providerAuthority", "\"mobi.cwiklinski.urc.provider\""
    resValue "string", "authorities", "mobi.cwiklinski.urc.provider"
}
adfree {
    applicationId "mobi.cwiklinski.urc.adfree"
    buildConfigField "String", "providerAuthority", "\"mobi.cwiklinski.urc.adfree.provider\""
    resValue "string", "authorities", "mobi.cwiklinski.urc.adfree.provider"
}

}

的AndroidManifest.xml

<provider
        android:name="mobi.cwiklinski.urc.provider.AppProvider"
        android:authorities="@string/authorities"
        android:exported="true"
        android:label="@string/app_name"
        android:syncable="true"
        android:writePermission="mobi.cwiklinski.urc.permission.USE_PROVIDER" />

这就是全部 - 在不同的产品口味中,您将获得不同的资源价值。

答案 1 :(得分:4)

从今天开始使用gradle插件0.13.0已经有效了。