android - Gradle混合口味不起作用

标签 android gradle android-gradle-plugin

我在Android上进行开发,对Gradle的构建逻辑有些困难。

我正在尝试使用一组资源和Java文件来组合使用。

我把它们放在src/productFlavor1ProductFlavor2/文件夹中

但是,当我编译构建变体productFlavor1ProductFlavor2DevDebug时,它只是从productFlavor1ProductFlavor2文件夹中什么也没得到。

我几乎尝试了一切...
从语法和顺序:

src/productFlavor1ProductFlavor2/
src/productFlavor1productFlavor2/
src/productFlavor1-productFlavor2/
src/productFlavor1/ProductFlavor2/

尝试指示要分发的文件夹
android.applicationVariants.all { variant ->
if (variant.getProductFlavors().get(0).name.equals('productFlavor1')
   && variant.getProductFlavors().get(1).name.equals('productFlavor2'))
    variant.sourceSets = 'src/productFlavor1ProductFlavor2'//read only... so doesn't work
}

谁知道https://developer.android.com/studio/build/中指示的 flavor 组合为什么实际上不起作用....?或者,如果我在那儿想不到的东西...

最佳答案

为了完成这项工作,您需要定义多种口味。
不允许组合单一 flavor 尺寸。

我认为将源代码放到多样式文件夹中并不是一个好主意,因为您会遇到太多组合需要处理的问题。

如果我在您的位置,我会分别对待每个维度,即:
有一个单独的文件夹,其中包含productFlavor1和productFlavor2。

checkout 这个:flavorsoverview of build system

不同文件夹的优先顺序:
1.构建变体(完全合格的名称,例如debugFlavor1Flavor2 / src)
1.构建类型(debug / src)
1.产品 flavor (如果您有多个尺寸,则按声明顺序订购)
1.主/源

关于android - Gradle混合口味不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50418938/

相关文章:

android - 在不丢失现有数据的情况下将预填充表添加到数据库

java - 在 IntelliJ Idea 中输入 build.gradle 很慢

Android Gradle 项目升级构建工具到 21.0.1 : aapt throws Exception

android - 如何在 Gradle 中将 .cmd 文件作为任务运行?

java - Gradle - 错误找不到参数的方法实现()[com.android.support :appcompat-v7:26. 0.0]

android - com.android.builder.merge.DuplicateRelativeFileException:使用操作系统独立路径 'META-INF/INDEX.LIST'找到了多个文件

android - native 应用程序安装横幅不起作用

android - MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION 权限 android 在代码中无法识别

java - 获取 Android 应用程序中每个联系人的生日

android - Android构建 react native 中的gradle错误