【问题标题】:Two flavours with different resources inheriting layout from one base flavour两种具有不同资源的风味从一种基本风味继承布局
【发布时间】:2015-12-26 20:27:22
【问题描述】:

我将我的 android 应用程序分为四种不同的构建风格。这些风格中的每一个都有一部分独特的javaxml 文件,以及main 下的一部分共享文件。为了清楚起见,我们将它们称为CucumberTomatoOnionPepper。这些风格具有独特的布局、可绘制对象、字符串、颜色、java 文件等。

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

如何在gradle 中实现这一点?

【问题讨论】:

    标签: android android-studio gradle android-gradle-plugin build.gradle


    【解决方案1】:

    您可以定义多个资源文件夹。
    通过这种方式,您可以使用 2 种口味的通用文件夹(在您的 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/layout 或 main/res/layout。
    • 我通过重新阅读您的答案解决了这个问题,但非常感谢您的澄清。它现在正在工作。 (为了其他读者的利益,我还在绿色和红色的味道中添加了java.srcDirs = ['/src/commonPepper/java'],因为共享代码是相同的)。非常感谢加布里埃尔。
    • 我不知道为什么,但这个解决方案对我不起作用,直到我删除了前导斜杠。 'src/commonPepper/res' 工作
    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 2015-10-06
    • 2022-07-01
    • 1970-01-01
    • 2016-08-29
    • 1970-01-01
    • 2013-06-06
    • 2017-10-19
    相关资源
    最近更新 更多