为什么 Android Studio 要求我排除 'META-INF/LICENSE.txt'?

Why is Android Studio asking me to exclude 'META-INF/LICENSE.txt'?

我是 运行ning Studio 1.1.0,我最近添加了 Joda-Time-2。7.jar。在我尝试 运行 项目后,我得到了错误:

Duplicate files copied in APK META-INF/LICENSE.txt

File 1: /libs/twitter4j-core-4.0.2.jar

File 2: /libs/twitter4j-core-4.0.2.jar

Error:duplicate files during packaging of APK /build/outputs/apk/app-debug-unaligned.apk
Path in archive: META-INF/LICENSE.txt
Origin 1: /libs/twitter4j-core-4.0.2.jar
Origin 2: /.gradle/caches/modules-2/files-2.1/joda-time/joda-time/2.7/55997..842195/joda-time-2.7.jar

我可以添加这个 运行 没问题:

packagingOptions {
    exclude 'META-INF/LICENSE.txt'
}

为什么添加 Joda-Time 后会出现此错误?为什么 Twitter4j 和 Joda-Time 冲突?

排除 'META-INF/LICENSE.txt' 是一个好的解决方案吗?

打包 APK 时不允许重复文件(除非它们需要合并,但那是另一回事)。在你的情况下,两个罐子都包含 META-INF/LICENSE.txt 文件,所以 Gradle 抱怨那个。

exclude 'META-INF/LICENSE.txt' 告诉 Gradle 从打包过程中排除这个文件。因为这只是一个带有许可证的文本——完全没问题。许可证不必包含在最终 APK 中。