【问题标题】:Why is Android Studio asking me to exclude 'META-INF/LICENSE.txt'?为什么 Android Studio 要求我排除“META-INF/LICENSE.txt”?
【发布时间】:2015-05-16 11:37:11
【问题描述】:

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

在 APK META-INF/LICENSE.txt 中复制的重复文件

文件 1:/libs/twitter4j-core-4.0.2.jar

文件 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”是一个好的解决方案吗?

【问题讨论】:

    标签: android android-library


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-16
      • 2016-10-02
      • 2016-10-01
      • 2015-11-01
      • 2017-10-07
      • 1970-01-01
      • 2022-07-22
      相关资源
      最近更新 更多