Android Gradle aapt如何配置ignoreAssetsPattern忽略指定文件夹
核心结论
Android Gradle配套的aapt支持忽略指定assets目录下的内容,你之前配置不生效是对ignoreAssetsPattern的匹配逻辑理解有误。
规则匹配逻辑说明
ignoreAssetsPattern 仅匹配assets根目录下的文件相对路径字符串,不会直接识别、匹配文件夹条目,你之前写的所有纯文件夹名规则,只会命中名字恰好和文件夹同名的单个文件,不会自动关联忽略文件夹下的所有内容。
另外规则里带!前缀是反向匹配语义,作用是强制保留匹配到的内容,和你要忽略内容的需求完全相反,自然不会生效。
正确配置方式
要忽略assets/unicorn_emoji整个文件夹的所有内容,规则需要匹配该文件夹下所有层级的文件路径,配置代码如下:
android { aaptOptions { // 匹配unicorn_emoji目录下所有层级的所有文件,实现整个文件夹忽略 ignoreAssetsPattern "unicorn_emoji/**" // 多规则用英文冒号分隔即可,例:同时忽略unicorn_emoji文件夹、所有.db后缀文件 // ignoreAssetsPattern "unicorn_emoji/**:*.db" } }
补充注意事项
- 该配置仅对
assets目录下的内容生效,如果需要忽略res目录下的资源文件夹,请使用resConfigs配置按需保留需要的资源类型、语言资源,或通过packagingOptions排除指定res资源路径 - 配置完成后建议执行
./gradlew clean清理旧构建缓存,再重新打包验证效果,避免旧构建产物干扰结果
内容的提问来源于stack exchange,提问作者PasserbyC
相关产品推荐
相关产品推荐

