gpt4 book ai didi

android - Maven中的重复依赖

转载 作者:行者123 更新时间:2023-11-30 02:54:18 24 4
gpt4 key购买 nike

您好,我似乎对我正在尝试构建的项目有重复的依赖。

错误如下:

[INFO] UNEXPECTED TOP-LEVEL EXCEPTION:
[INFO] java.lang.IllegalArgumentException: already added: Landroid/support/v4/content/LocalBroadcastManager$BroadcastRecord;
[INFO] at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:122)
[INFO] at com.android.dx.dex.file.DexFile.add(DexFile.java:161)
[INFO] at com.android.dx.command.dexer.Main.processClass(Main.java:685)
[INFO] at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)
[INFO] at com.android.dx.command.dexer.Main.access$600(Main.java:78)
[INFO] at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572)
[INFO] at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
[INFO] at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
[INFO] at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
[INFO] at com.android.dx.command.dexer.Main.processOne(Main.java:596)
[INFO] at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)
[INFO] at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264)
[INFO] at com.android.dx.command.dexer.Main.run(Main.java:230)
[INFO] at com.android.dx.command.dexer.Main.main(Main.java:199)
[INFO] at com.android.dx.command.Main.main(Main.java:103)
[INFO] 1 error; aborting

我正在做两个项目。一个充当 api/sdk,另一个充当使用此 api/sdk 的客户端应用程序。

api/sdk 为一个名为 LocalbroadcastManager 的类/接口(interface)使用支持 v4 android 依赖库,客户端应用程序使用相同的库但不同的类。

问题是,当您将 sdk/api 添加为客户端应用程序的依赖项时,它还包括 v4 支持库依赖项。但是,受支持的 v4 库依赖项仅显示 LocalBroadCastManager,因此您必须为整个 v4 支持库创建并添加对客户端本身的依赖项。

现在我知道问题出在哪里了,我想弄清楚如何才能使用 sdk/api 项目中的整个 v4 支持库以及基本上如何公开该 sdk/api 项目中的整个 v4 支持库?

这应该可以解决我收到的错误,因为只有一个 LocalBroadcastManager 加上任何其他 v4 支持库类将只在客户端项目中添加一次。

来自客户端应用的 pom fragment

<dependency>
<groupId>com.google.android</groupId>
<artifactId>support-v4</artifactId>
<version>${android.support.v4.version}</version>
</dependency>

来自 sdk/api 项目的 Pom fragment

 <dependency>
<groupId>com.google.android</groupId>
<artifactId>support-v4</artifactId>
<version>${android.support.v4.version}</version>
</dependency>

或多或少相同,那么我如何只使用一个?

谢谢

最佳答案

排除项添加到使用支持库的依赖项之一:

<dependency>
<!-- one of the dependencies containing the support lib -->
<exclusions>
<exclusion>
<groupId>com.google.android</groupId>
<artifactId>support-v4</artifactId>
</exclusion>
</exclusions>
</dependency>

关于android - Maven中的重复依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23567173/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com