资源合并android gradle构建的优先级

时间:2017-12-13 17:36:11

标签: android android-gradle

我们希望将代码库分成几个android库模块。其中一个包含共享共享资源(字符串,drawables等)。

当其中一个资源(比如app_name)也在另一个外部库中定义时,会出现问题。在这种情况下,当合并所有模块时,从外部库(随机?)中选择标识为app_name的资源,丢弃在我们自己的本地库模块中定义的资源。

在合并资源以支持特定库或至少是本地定义的模块时,有没有办法设置优先级?

1 个答案:

答案 0 :(得分:1)

过去我遇到过这个问题,这就是我解决问题的方法:

app模块(您的主模块)中将其添加到build.gradle文件中:

sourceSets {
    main {
        res.srcDirs =
                [
                        '../my-module/src/main/res',
                        'src/main/res'
                ]
    }
}
  • ../my-module/src/main/res - >通过这种方式,您将引用存储在库模块的相对路径中的资源(my-module
  • src/main/res - >需要参考app模块
  • 中的其他资源

Android doc: