基于Gradle中的构建变体的不同drawable

时间:2014-04-14 19:11:52

标签: android gradle android-gradle

我的gradle文件中有两种口味:flavor1和flavor2。与构建类型一起,它们创建以下构建变体:

flavor1-debug
flavor1-release
flavor2-debug
flavor2-debug

假设我想为每个变体设置不同的drawable,我应该把它放在哪里?

我的文件夹结构是

src
 |__ main
 |__ flavor1
 |__ flavor2
 |__ debug
 |__ release

我知道,根据this

  

使用覆盖优先级使用所有资源(Android资源和资产)   其中Build Type会覆盖Product Flavor,它会覆盖   main sourceSet。

然而,这意味着如果我将它放在Build Type文件夹中,那么调试变体将具有相同的调试drawable,并且release版本将具有相同的release drawable。

我想我可以从头开始创造更多特定口味,例如flavor1release,flavor1debug,flavor2release,flavor2debug,但我最终会得到8个变种。我可能不会根据this构建一些构建类型,但这似乎不是很干净。

1 个答案:

答案 0 :(得分:9)

实际上还有其他可用的源集。你可以这样做:

src
 |__ main
 |__ flavor1
 |__ flavor1Debug
 |__ flavor1Release
 |__ flavor2
 |__ flavor2Debug
 |__ flavor2Release
 |__ debug
 |__ release

我认为它会给你你想要的东西 - 在一个flavor + build类型文件夹中,你可以在适当的资源子目录中拥有你的特定于变体的资源。

有关详细信息,请参阅http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Sourcesets-and-Dependencies处的文档。