2

正如我们所知,有两种方法可以res为每个productFlavoror设置单独的目录buildType

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

第二种方法是指定res目录下sourceSetsbuild.gradle类似

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

我确信资源合并将在第一种方法中发生,并且单独目录中用于风味的任何缺失资源都将从main's sourceSet.

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

资源合并是否会以与使用单独文件夹的第一种方法相同的方式发生?在这里,我将明确分配一个单独的目录。对于在指定目录中找不到的资源,它是否仍然回退到 main ?

我之所以这样问,是因为http://tools.android.com/ 上的 THIS LINK中的示例,在本文末尾,它显示'src/main/res'明确添加如下:

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

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

4

1 回答 1

1

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

  1. 无需指定src\main\res目录。回退发生在主 res 目录的两种方法中。
  2. 这对resassets文件夹都非常有效。而且我认为它对于其他文件夹也将完全相同。我不需要那些,所以没有尝试过。但是,我想不出他们在文件夹何时起作用res的任何原因。assets

因此,它按预期工作。

于 2016-03-19T14:15:16.897 回答