前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Android Gradle 插件】AaptOptions 配置 ⑥ ( Overlay 重叠包机制 | AaptOptions#additionalParameters 附加参数配置 )

【Android Gradle 插件】AaptOptions 配置 ⑥ ( Overlay 重叠包机制 | AaptOptions#additionalParameters 附加参数配置 )

作者头像
韩曙亮
发布2023-03-30 15:17:51
3410
发布2023-03-30 15:17:51
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

Android Plugin DSL Reference 参考文档 :

一、Overlay 重叠包机制


在 " AS项目根目录/app/src/main " 目录下创建一个 " res2 " 目录 , 将该目录也作为资源目录 ,

在这里插入图片描述
在这里插入图片描述

res2 目录下创建 values 目录 , 并在其中创建 strings.xml 文件 ,

在这里插入图片描述
在这里插入图片描述

strings.xml 文件 内容如下 :

代码语言:javascript
复制
<resources>
    <string name="app_name">SVG_res2</string>
    <string name="res2">res2</string>
</resources>
在这里插入图片描述
在这里插入图片描述

而 " AS项目根目录/app/src/main/values/strings.xml " 中的内容为 :

代码语言:javascript
复制
<resources>
    <string name="app_name">SVG</string>
</resources>

在 res 和 res2 中都有 <string name="app_name"> , 则只会取编译时找到的第一个 该标签属性 进行打包 ;

这里就涉及到多个 res 目录进行编译打包的问题 ;

二、AaptOptions#additionalParameters 附加 -S 参数配置实现Overlay 重叠包机制


在 AaptOptions#additionalParameters 附加参数配置中

  • 配置 " -S " 参数 , 指定要查找的 res 资源目录 ;
  • 配置 " --auto-add-overlay " 参数 , 表示自动添加重叠包 ;

参考 【Android Gradle 插件】AaptOptions 配置 ① ( AaptOptions#additionalParameters 附加参数配置 | aapt 工具帮助文档 ) 三、aapt 工具帮助文档 中的 aapt 资源编译工具的 -S 参数 原型 :

代码语言:javascript
复制
   -S  directory in which to find resources.  Multiple directories will be scanned
       and the first match found (left to right) will take precedence.
       要在其中查找资源的目录。将扫描多个目录,找到的第一个匹配项(从左到右)将优先。
   --auto-add-overlay
       Automatically add resources that are only in overlays.
       自动添加仅在覆盖中的资源。

注意 -S 配置中 , 如果 res 与 res2 目录有相同的 属性 , 则只取找到的第一个属性 ,

最终打包出的 strings.xml 资源中 , 会有

代码语言:javascript
复制
<resources>
    <string name="app_name">SVG</string>
    <string name="res2">res2</string>
</resources>

注意 : 使用 aapt 可以使用上述方式 , 但是 aapt2 不行 , 会报错 ;

代码语言:javascript
复制
* What went wrong:
Execution failed for task ':app:processDebugResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > Android resource linking failed
     AAPT: unknown option '-S'.
     
     aapt2 link [options] -o arg --manifest arg files...
在这里插入图片描述
在这里插入图片描述

aapt 运行环境 : gradle:2.2.0 / gradle-wrapper:3.4.1

aapt2 运行环境 : gradle:3.3.2 / gradle-wrapper:5.6.2

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、Overlay 重叠包机制
  • 二、AaptOptions#additionalParameters 附加 -S 参数配置实现Overlay 重叠包机制
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档