Android Gradle 插件AndroidSourceSets 配置 ① ( Overlay 重叠包机制 | 使用 sourceSets 配置多个 res 目录 )

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Gradle 插件AndroidSourceSets 配置 ① ( Overlay 重叠包机制 | 使用 sourceSets 配置多个 res 目录 )相关的知识,希望对你有一定的参考价值。

文章目录

Android Plugin DSL Reference 参考文档 :





一、Overlay 重叠包机制



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

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

strings.xml 文件 内容如下 :

<resources>
    <string name="res2">res2</string>
</resources>

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

<resources>
    <string name="app_name">SVG</string>
</resources>




二、使用 sourceSets 配置多个 res 目录



使用 sourceSets 配置多个 res 目录 , 在 " android # sourceSets " 下配置

    sourceSets 
        main 
            res.srcDirs 'src/main/res', 'src/main/res2'
        
    

内容 , 完整配置参考 :

android 

    compileSdkVersion 30
    buildToolsVersion "30.0.3"

    defaultConfig 
        applicationId "kim.hsl.svg"
        minSdkVersion 18
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"=
    

    sourceSets 
        main 
            res.srcDirs 'src/main/res', 'src/main/res2'
        
    

注意 , 配置的 ‘src/main/res’, ‘src/main/res2’ ;两个 res 目录中 , 不能有重复名称的资源 , 否则报错 ;

参考 【错误记录】Android Studio 编译报错 ( Error: Duplicate resources | 使用 sourceSets 配置多个 res 资源不能有重复名称的资源 ) 博客 ;

以上是关于Android Gradle 插件AndroidSourceSets 配置 ① ( Overlay 重叠包机制 | 使用 sourceSets 配置多个 res 目录 )的主要内容,如果未能解决你的问题,请参考以下文章

Android Gradle 插件Gradle 依赖管理 ① ( org.gradle.api.Project 配置 | Android Gradle 插件配置与 Gradle 配置关联 ) ★

Android Gradle 插件Gradle 构建机制 ⑤ ( 在 Android Studio 中查看 Android Gradle 插件源码 )

Android Gradle 插件Gradle 自定义 Plugin 插件 ③ ( 自定义插件作用 | Android Gradle 插件的扩展 | 自定义 Extension 扩展 )

Android Gradle 插件Gradle 自定义 Plugin 插件 ⑥ ( 在 buildSrc 模块中依赖 Android Gradle 插件 | 完整代码示例 )

Android Gradle 插件Gradle 自定义 Plugin 插件 ⑥ ( 在 buildSrc 模块中依赖 Android Gradle 插件 | 完整代码示例 )

Android Gradle 插件Gradle 自定义 Plugin 插件 ② ( buildSrc 目录中实现 Gradle 插件 | 实现 Gradle 插件代码 | 模块引入插件并编译 )