首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有风格的ext变量不适用于多维

带有风格的ext变量不适用于多维
EN

Stack Overflow用户
提问于 2019-02-20 20:30:10
回答 2查看 441关注 0票数 0

我与下面的代码具有相同的结构,我想在gradle文件中将前缀和后缀放在不带点的位置,并在末尾使用applicationId值。

我不想使用applicationIdSuffix,因为它会自动添加点,而且我无法在gradle上获得它的值,也无法获得完整的applicationId。

代码语言:javascript
运行
复制
flavorDimensions "type", "version"

productFlavors.all {
       ext.appIdPrefix = "com.example"
       ext.appId = ""
       ext.appIdSuffix = ""
    }

productFlavors {

        flavor1 {
            dimension "type"
            appId = ".flavor1"
        }

       full {
            dimension "version"
            appIdSuffix = "Full"
        }
}

productFlavors.all  {
     applicationId appIdPrefix + appId + appIdSuffix
}

现在,当我使用"flavor1full“运行我的应用程序时,applicationId只是"com.exmaple.flavor1”,没有获得appIdSuffix的值

我该怎么解决这个问题呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-21 05:25:36

尝试迭代applicationVariants,而不是更改每种口味的应用程序ID:

代码语言:javascript
运行
复制
applicationVariants.all { variant ->
    def flavors = variant.productFlavors
    variant.mergedFlavor.applicationId = flavors[0].appId + flavors[1].appIdSuffix ;
}

由于两种构建类型,这将遍历每种风格的组合两次。另请参阅Multi-Dimension Flavor ApplicationId

还要注意你的问题中的一个拼写错误:appIdSuffix "Full"应该是appIdSuffix="Full"

票数 1
EN

Stack Overflow用户

发布于 2019-02-20 21:31:03

假设您的最终目标是使用不同的应用程序ID构建不同的应用程序风格,您应该能够使用以下内容:

代码语言:javascript
运行
复制
flavorDimensions "type"

productFlavors.all {
    ext.appIdPrefix = "prefix"
    ext.appId = "hello.world"
}

productFlavors {
    partial {
        dimension "type"
        ext.appIdSuffix = "suffix1"
    }

    full {
        dimension "type"
        ext.appIdSuffix = "suffix2"
    }
}

productFlavors.all {
    applicationId appIdPrefix + "." + appId + "." + appIdSuffix
}

根据所选择的构建变量,上面将生成以suffix1或suffix2结尾的应用程序ID。我不太明白为什么你需要另一个维度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54786444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档