Ale*_*x W 4 android gradle android-gradle-plugin
我有一个依赖两个Android库的Android应用程序项目。这两个Android库指定具有相同资源ID的两个资源。在旧的Ant构建系统中,库的优先级是在project.properties文件中指定的,但是在Gradle构建系统中未使用该文件。
尽管“ 资源合并”文档解释了在构建类型,产品风格,应用程序项目和库项目之间发生冲突的资源的优先级和合并过程,但并没有说明将两个(没有共同依赖项的库)合并到一个库中时发生的情况项目。在构建过程的合并过程中,Android Gradle插件如何确定哪个库的资源具有更高的优先级?
无法为图书馆的资源指定优先级。
您只能设置的前缀,在您的图书馆与
android {
resourcePrefix 'mylib_'
}
Run Code Online (Sandbox Code Playgroud)
啊,看来 Android 开发者文档终于给了我们答案。我从https://developer.android.com/studio/projects/android-library#Considerations中提取了此内容:
构建工具将库模块中的资源与依赖应用程序模块的资源合并。如果两个模块中都定义了给定的资源 ID,则使用应用程序中的资源。
如果多个 AAR 库之间发生冲突,则使用依赖项列表中第一个列出的库(朝向依赖项块的顶部)中的资源。
为了避免公共资源 ID 的资源冲突,请考虑使用模块唯一(或在所有项目模块中唯一)的前缀或其他一致的命名方案。
我将相关段落加粗。看起来依赖项在 Gradle 依赖项块中出现的顺序会影响构建过程!这是一件值得警惕的小事。
| 归档时间: |
|
| 查看次数: |
1486 次 |
| 最近记录: |