pqv*_*vst 6 android gradle android-studio android-gradle-plugin
我想知道是否可以为特定的风味组组合提供文件或配置设置.例如,我有2个风味组,每组有2种不同的风味:
风味组:版本
风味组:类型
订购"类型","版本"时,我可以构建我的应用程序的4种不同风格:
我的源代码树看起来像这样:
/src
/free
/res
/full
/res
/v2
/java
/res
AndroidManifest.xml (features and permissions for v2 flavors)
/v3
/java
/res
AndroidManifest.xml (features and permissions for v3 flavors)
Run Code Online (Sandbox Code Playgroud)
这正是我想要的,对我的项目非常有效.但是,我希望我能为特定的风味组合组合提供文件.例如,我想为FullV3和FullV2提供不同的AndroidManifests.我不认为这是可能的,或者?例如:
/src
/free
/res
/full
/res
/v2
/java
/res
AndroidManifest.xml (features and permissions for v2 flavors)
/v3
/java
/res
AndroidManifest.xml (features and permissions for v3 flavors)
/fullv3
AndroidManifest.xml (features and permissions for full v3 only!)
/fullv2
AndroidManifest.xml (features and permissions for full v2 only!)
Run Code Online (Sandbox Code Playgroud)
我也很高兴能够在gradle构建文件中执行此操作:
productFlavors {
free {
packageName ...
flavorGroup "type"
}
full {
packageName ...
flavorGroup "type"
}
v2 {
packageName ...
flavorGroup "version"
}
v3 {
packageName ...
flavorGroup "version"
}
fullv2 {
... <-- specifically for the full-v2 combination
}
fullv3 {
... <-- specifically for the full-v3 combination
}
}
Run Code Online (Sandbox Code Playgroud)
注意:一种解决方案是只有1个flavor组并明确定义4种flavor:
但是,这对我来说不是一个可行的解决方案,因为我必须复制每个版本的免费和完整版本的所有版本特定代码.
此功能是在Gradle的Android插件版本0.7.0中添加的
http://tools.android.com/tech-docs/new-build-system < - 截至2014年1月6日,此链接有效
如果您有味道,现在可以拥有变体特定的源文件夹.
- 仅适用于app(不是库或测试).名字是
src/flavorDebug/...
或src/flavor1Flavor2Debug/
- 请注意camelcase命名,首字母为小写.
- 它的组件(res,manifest等)比构建类型或flavor的组件具有更高的优先级.
- 当使用多个风味维度时,还有一个"风味组合"源文件夹可用.例如
src/flavor1Flavor2/
- 请注意,这适用于所有维度的所有组合.
- 它的优先级高于单味源集,但低于构建类型.
2014年1月30日更新
IntelliJ IDEA v13.0.2(Build 133.696)现在支持在0.7.0中进行的Android Gradle Plugin更改