使用不同方法构建gradle期间的资源合并

时间:2016-03-18 12:23:36

标签: android gradle android-resources android-productflavors source-sets

我们知道有两种方法可以为每个resproductFlavor分别设置buildType个目录。

第一种方法是在src文件夹下设置单独的目录,例如src\flavor1\ressrc\flavor2\res等。

第二种方法指定ressourceSets下的build.gradle目录

sourceSets {
    main {
        res.srcDirs    = ['res']
    }
    dev {
        res.srcDirs    = ['res-dev']
    }
}

我确信资源合并将在第一种方法中发生,并且将从main的sourceSet中选择单独的目录中缺少的资源。

问题是关于上面第二种方法

资源合并是否会像使用单独文件夹的第一种方法一样发生?在这里,我明确地指定一个单独的目录。对于未在指定目录中找到的资源,它是否仍会回退到主要位置?

我问这是因为THIS LINK on http://tools.android.com/中的示例,在文章末尾显示'src/main/res'显式添加如下:

android.sourceSets {
   main.res.srcDirs = ['src/main/res', 'src/main/res2']
}

有没有人这样做,并且知道如果我只是提供额外的目录而不是主要的额外目录,资源合并是否仍然会发生?它会回退到缺少资源的主目录吗?

1 个答案:

答案 0 :(得分:1)

好的,我自己尝试了以上每种情况。调查结果如下:

  1. 无需指定src\main\res目录。回溯发生在主res目录的两种方法中。
  2. 这对resassets文件夹都非常有效。而且我认为它对其他文件夹也会完全相同。我不需要那些没试过的人。但是,我无法想到在resassets文件夹中它们无法正常工作的原因。
  3. 因此,它按预期工作。