通过aaptOptions从{_next“资产文件夹中复制所有android文件

时间:2019-12-03 14:07:21

标签: android build.gradle

我最近发现android将忽略以_开头的资产文件夹,而aaptOptions { ignoreAssetsPattern }可用于覆盖资产文件夹。

我在Google周围搜索,发现了这样的示例

aaptOptions {
  ignoreAssetsPattern '!.svg:!.woff:!.jpg:!*.scc:!CVS:!thumbs.db:!picasa.ini:!*~'
}

我假设对单个文件执行此操作?但是我想澄清一下是否可以将_next资产文件夹中的所有文件都包括在内,而不是指定每个文件?

如果不是,您能否澄清!.svg!*.scc之间的区别以及!*~到底意味着什么?

1 个答案:

答案 0 :(得分:1)

ignoreAssetsPattern仅记录在sources中,如果您使用构建工具通过选项--ignore-asset进行编译,则只有默认值,并且默认模式为:

!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~

该格式的规则如下:

* Patterns syntax:
 * - Delimiter is :
 * - Entry can start with the flag ! to avoid printing a warning
 *   about the file being ignored.
 * - Entry can have the flag "<dir>" to match only directories
 *   or <file> to match only files. Default is to match both.
 * - Entry can be a simplified glob "<prefix>*" or "*<suffix>"
 *   where prefix/suffix must have at least 1 character (so that
 *   we don't match a '*' catch-all pattern.)
 * - The special filenames "." and ".." are always ignored.
 * - Otherwise the full string is matched.
 * - match is not case-sensitive.

因此,要回答所有问题,!.svg!*.scc之间的区别是,第一个将忽略名为“ .svg”的文件或文件夹的资产模式,但是第二个一种,将忽略所有扩展名为.scc的文件或文件夹的资产模式,!*~的意思是忽略所有末尾带有符号〜的文件或文件夹

适合您的情况的配置将是:

aaptOptions {
  ignoreAssetsPattern '!_*'
}

因此它将忽略所有以“ _”开头的文件和文件夹的资产模式