首页 > 解决方案 > 重复类:javax.activation ... 使用 Gradle 构建项目时

问题描述

在我的 build.gradle 文件中添加以下实现后,通过 USB 在手机上运行项目时构建失败:

implementation 'com.fasterxml.jackson.core:jackson-core:2.10.1'
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.10.1'

虽然没有在设备上运行,但构建成功。以下是构建输出中的重复文件:

    Duplicate class javax.activation.ActivationDataFlavor found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.CommandInfo found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.CommandMap found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.CommandObject found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.DataContentHandler found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.DataContentHandlerFactory found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.DataHandler found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.DataHandler$1 found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.DataHandlerDataSource found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.DataSource found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.DataSourceDataContentHandler found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.FileDataSource found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.FileTypeMap found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.MailcapCommandMap found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.MimeType found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.MimeTypeParameterList found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.MimeTypeParseException found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.MimetypesFileTypeMap found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.ObjectDataContentHandler found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.SecuritySupport found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.SecuritySupport$1 found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.SecuritySupport$2 found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.SecuritySupport$3 found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.SecuritySupport$4 found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.SecuritySupport$5 found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.URLDataSource found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)
Duplicate class javax.activation.UnsupportedDataTypeException found in modules jetified-activation (activation.jar) and jetified-jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1)

标签: javaandroidgradle

解决方案


可能发生这种情况是因为您正在使用两个使用相同依赖项的库,请尝试将 transitive = true 添加到 Jackson,就好像您使用的是使用 javax.activation 的名为 jakarta 的库一样。

传递是做什么的?检查这篇文章。

Gradle 中的transitive = true 究竟做了什么(wrt crashlytics)?


推荐阅读