| 
 | 
 
这段代码具体做了以下几件事情: 
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}'
 
  复制代码 
 
 
 |   
 
 
 
 |