在我的gradle文件中,我具有以下内容:
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE'
}
根据文档:
/**
* Adds an excluded paths.
* @param path the path, as packaged in the APK
*/
这是什么意思?有人可以给我一个现实的例子,说明为什么需要进行这些排除吗?
最佳答案
如果要将几个aar
文件的扩展名更改为zip
并打开它们,最终将有两个aar
文件,这些文件的路径相同。
SomeDependency-A.aar
-META-INF/LICENSE
...
SomeDependency-B.aar
-META-INF/LICENSE
...
合并
aar
依赖项时,它会失败,因为它尝试添加文件LICENSE
且该文件已经存在。我们通过排除重复的文件来解决此问题
android {
packagingOptions {
exclude 'META-INF/LICENSE'
}
}
关于android - 为什么需要gradle build PackagingOptions?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35417464/