Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android maven中的重复依赖项_Android_Maven_Android Support Library - Fatal编程技术网

Android maven中的重复依赖项

Android maven中的重复依赖项,android,maven,android-support-library,Android,Maven,Android Support Library,您好,我似乎对我试图构建的项目有重复的依赖关系 错误如下: [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(

您好,我似乎对我试图构建的项目有重复的依赖关系

错误如下:

[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的类/接口使用support v4 android依赖库,客户端应用程序使用相同的库但不同的类

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

现在我知道问题是什么了,我正试图弄清楚如何使用sdk/api项目中的整个v4支持库,以及基本上如何公开该sdk/api项目中的整个v4支持库

这将修复我得到的错误,因为只有一个LocalBroadcastManager加上任何其他v4支持库类将只在客户端项目中添加一次

来自客户端应用程序的pom代码段

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

com.google.android
支持-v4
${android.support.v4.version}
sdk/api项目中的Pom代码段

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

com.google.android
支持-v4
${android.support.v4.version}
大致相同,那么如何仅使用一个


谢谢

向使用支持库的一个依赖项添加一个
排除项

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

com.google.android
支持-v4