【问题标题】:ext variables with flavor doesn't work with multiple dimension带有风味的 ext 变量不适用于多维
【发布时间】:2019-07-14 03:34:32
【问题描述】:

我的结构与下面的代码相同,我想将前缀添加到 applicationId 和不带点的后缀,并在 gradle 文件的末尾使用 applicationId 值。

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

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 的值

我该如何解决?

【问题讨论】:

    标签: android gradle android-productflavors


    【解决方案1】:

    不要为每种风格更改应用 ID,而是尝试迭代 applicationVariants:

    applicationVariants.all { variant ->
        def flavors = variant.productFlavors
        variant.mergedFlavor.applicationId = flavors[0].appId + flavors[1].appIdSuffix ;
    }
    

    由于有两种构建类型,这将遍历每种风味组合两次。另见Multi-Dimension Flavor ApplicationId

    还要注意问题中的一个错字:appIdSuffix "Full" 应该是 appIdSuffix="Full"

    【讨论】:

      【解决方案2】:

      假设您的最终目标是使用不同的应用程序 ID 构建不同的应用程序风格,您应该能够使用这样的东西:

      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。不确定我是否理解您为什么需要另一个维度。

      【讨论】:

      • 是的,但是多维度的问题。如果完全分配给另一个维度并对 ext 中的第三个变量进行更改。它不会出现在applicationId中
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-29
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-01
      相关资源
      最近更新 更多