2015-09-29 75 views
4

我有我的Android应用程序拆分成四种不同的构建风味。这些风味中的每一种都具有独特的javaxml文件的一部分,以及在main下的一部分共享文件。为了清楚起见,我们将这些称为Cucumber,Tomato,OnionPepper。这些口味有独特的布局,drawables,字符串,颜色,java文件等不同资源的两种风味继承一种基本风格的布局

我的要求是现在我需要将我的Pepper风味分成两个子口味; Red-PepperGreen-Pepper。这两种口味的布局应该相同 - 唯一不同的是这两种口味必须使用不同的drawablestring资源。由于显而易见的原因,我不希望在红色和绿色中使用重复的布局文件。

这怎么能在gradle中实现?

回答

4

您可以定义多个资源文件夹。
通过这种方式,您可以使用两种风味的常用文件夹(在您的redPepper和greenPepper中)。
例如是这样的:

android { 
    ... 
    sourceSets { 
      main { 
       //.... 
       res.srcDirs = ['/src/main/res'] 

      } 
      redPepper { 
       res.srcDirs = ['/src/flavorRed/res', '/src/commonPepper/res'] 
      } 
      greenPepper { 
       res.srcDirs = ['/src/flavorGreen/res', '/src/commonPepper/res'] 
      }  
      //.....other flavors 
    } 
} 
如果布局文件是普通它们移动到commonPepper/RES /布局,或主/ RES /布局
+0

。 –

+1

我已经通过重新阅读您的答案来达成目标,但非常感谢您的澄清。现在正在工作。 (为了其他读者的利益,我还为绿色和红色添加了'java.srcDirs = ['/ src/commonPepper/java']',因为共享代码是相同的)。非常感谢Gabriele。 –

+0

我不知道为什么,但是这个解决方案在我删除前导斜杠之前并不适用于我。 'src/commonPepper/res' working – mtbomb