|
这段代码具体做了以下几件事情:
packagingOptions:这个块用于指定打包选项,用于解决资源冲突问题。
resources:这个子块专门用于处理资源文件的冲突。
excludes += '/META-INF/{AL2.0,LGPL2.1}':这行代码指定了要排除的文件模式。这里使用了Groovy语言的语法来添加排除规则。
excludes +=:表示向excludes集合中添加新的排除规则。excludes是一个集合,用于存储所有需要被排除的文件或文件模式的列表。
'/META-INF/{AL2.0,LGPL2.1}':这是一个文件匹配模式,表示要排除META-INF目录下名为AL2.0和LGPL2.1的文件。这里的{AL2.0,LGPL2.1}是Groovy语言的多值语法,等同于分别指定'/META-INF/AL2.0'和'/META-INF/LGPL2.1'两个模式。
为什么要排除这些文件?
META-INF/AL2.0 和 META-INF/LGPL2.1 通常是许可证文件,分别对应于Apache License 2.0和GNU Lesser General Public License, version 2.1。在将多个库打包进一个APK时,如果多个库包含相同的许可证文件,就会发生冲突。由于这些文件主要是法律文档,对于应用的运行不是必需的,因此通常的做法是在打包时排除它们。
- packagingOptions {
- resources {
- excludes += '/META-INF/{AL2.0,LGPL2.1}'
复制代码
|
|