我对Gradle + Android Build中明显占位符的新可能性大肆宣传。我在gradle文档中发现我可以像这样指定我自己的占位符:
productFlavors {
free {
}
pro {
manifestPlaceholders = [ activityLabel:"proName" ]
}
}
但是我希望有一个占位符依赖于构建类型而不是产品风格。当我将该占位符规范插入到构建类型设置中时,它不起作用。你知道如何实现这个目标吗?因为在我看来,愚蠢的有三种构建类型和三种与之相关的风格。感谢
答案 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已经有效了。