指定构建变体的基础

时间:2018-08-06 08:54:06

标签: android

构建变量是一个非常强大的工具,可以通过指定较小的差异来创建代码的不同变量,我在项目中大量使用了它。但我想知道是否可以选择特定的变体作为其他变体的基础,而不是选择main

例如,假设我的应用有3个变体:A(主),BC。变体B与变体A有很多不同的资源文件,因此我将它们添加到B变体文件夹中,并且在编译变体B时一切正常。但是对于变体C,基于变体B的改动很小。现在,我想知道创建变体C的最佳方法是什么。最简单的方法是将B变体的所有已更改文件(与A变体相比)复制到变体C,并对变体C对其进行小的更改。我个人不喜欢这种方法,因为我也需要将所有更改B应用于变量C,也容易出现错误和错误。

总有将变体C连接到变体B的过程,因此aar试图创建C变体的资源时,它使用变体B作为基础而不是变体A?我认为有可能在变量中添加另一个维度,但是我更愿意在不添加新维度的情况下做到这一点。

1 个答案:

答案 0 :(得分:0)

例如,您可以根据其他情况配置下一个BuildType

debugWithAnalytics.initWith(buildTypes.debug)

但是您应该在功能上使用调味料和调味料尺寸-可以将不同的调味料合并到一个配置中,因为buildTypes表示构建配置中的差异。 BuildTypes应包含有关构建过程的信息,例如signconfig,基本构建流程配置等。

flavorDimensions("devbeta", "mainmirror")
productFlavors {
    // Beta API enviroment
    beta {
        dimension = "devbeta"
        buildConfigField "String", "SOCKET_REMOTE_PATH", "\"/beta\""
    }

    // Dev API enviroment
    dev {
        dimension = "devbeta"
        buildConfigField "String", "SOCKET_REMOTE_PATH", "\"/dev\""
    }

    // Prod API enviroment
    prod {
        dimension = "devbeta"
        buildConfigField "String", "SOCKET_REMOTE_PATH", "\"/prod\""
    }

    mainhost {
        dimension = "mainmirror"
        buildConfigField "String", "CONFIG_REMOTE_HOSTNAME", "\"mainmirro1\""
    }

    mirrorhost {
        dimension = "mainmirror"
        buildConfigField "String", "CONFIG_REMOTE_HOSTNAME", "\"mainmirrow\""
    }
}

在这种情况下,可能的构建变体将为...MainhostBeta MirrorhostDev等。

相关问题