【问题标题】:Build only default (no flavors/variants)仅构建默认值(无风味/变体)
【发布时间】:2015-10-09 19:43:09
【问题描述】:

我为我的构建定义了一堆产品风格。但是在某些情况下,我想构建没有味道的东西。

但是,当我尝试构建没有味道的版本时,即

gradlew assembleRelease

它会遍历并构建所有变体,这需要很长时间。我想开始发布版本并忽略所有口味。这可能吗?

我确信我可以添加一个名为“默认”的空风格,并构建它。看来我不应该这样做。

编辑:

defaultConfig {
    resValue "string", "hello", "Hello default"
}

productFlavors {
    foo {
        resValue "string", "hello", "Hello Foo"
    }

    bar {
        resValue "string", "hello", "Hello Bar"
    }
}

目前的答案似乎是提供您自己的“默认”风味

productFlavors {

    defaults {
       // yup its empty cause I just want to build with the defaults
       // that are already defined.
    }

    foo {
        resValue "string", "hello", "Hello Foo"
    }

    bar {
        resValue "string", "hello", "Hello Bar"
    }
}

【问题讨论】:

  • 如果您添加了 productFlavors,您现在将拥有变体。所以你的“默认”将是assemble[variant]Debug 和assemble[variant]Release。
  • 我一直在寻找一段时间没有答案,因此这篇文章。恕我直言,这很糟糕。仅仅因为我添加了提供一些不同默认值或配置的风味,并不意味着没有它们就无法构建。有一个 defaultConfig 块,我可以在其中定义要使用的默认值,而无需使用它,这似乎是合理的。那是空的味道....
  • 您似乎不了解风味,您可以创建仅使用“默认”的“默认”风味。风味的重点是针对称为变体的不同安装。请参阅:stackoverflow.com/questions/17656826/… 和 stackoverflow.com/questions/21307444/…
  • 我怎么看不懂?您可以覆盖各种类型的东西。例如,您可以使用 resValue 来提供资源值。因此,在我的 2 种风格中,我可以为资源定义 2 个不同的值。但我也可以将 resValue 放在我的 defaultConfig 块中。这意味着如果我想要一个带有 resValue 覆盖的构建。我已经更新了问题以显示这一点。但是没关系,如果您定义了风味,显然您无法构建非风味版本。还是很笨,为什么在这种情况下有默认值?
  • 问题是当Java源文件在不同风格之间存在差异时,该文件仅存在于不同风格中,因此纯版本将不完整。尽管如此,它应该能够检测到风味只包含资源并在这种情况下构建默认版本。

标签: android gradle android-productflavors


【解决方案1】:

我发现“main”作为一种风味很有效。所以我不需要添加带有 google-services.json 或其中任何内容的额外文件夹

productFlavors {

    main{

    }

    flav1 {
        applicationId 'id'
    }

}

【讨论】:

    猜你喜欢
    • 2015-08-31
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2023-01-31
    • 2014-10-24
    • 2021-08-03
    • 1970-01-01
    • 2010-12-23
    相关资源
    最近更新 更多