Android gradle模块具有相同的名称

时间:2015-05-05 02:57:28

标签: java android gradle

我正在开发一个使用以下依赖项的Android项目:

    <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-client</artifactId>
        <version>2.17</version>
    </dependency>

但是,这个依赖项有两个模块javax / inject的定义,如gradle依赖树中所示:

 +--- org.glassfish.jersey.core:jersey-client:2.17
 |    +--- org.glassfish.jersey.core:jersey-common:2.17
 |    |    +--- org.glassfish.hk2:hk2-api:2.4.0-b10
 |    |    |    +--- javax.inject:javax.inject:1
 |    |    +--- org.glassfish.hk2.external:javax.inject:2.4.0-b10

尝试运行Android应用程序时出现错误:

com.android.dex.DexException: Multiple dex files define L/javax/inject/Inject

我尝试排除这些模块中的任何一个,但这不起作用,因为依赖关系依赖于它们来进行方法调用。

还有其他解决方案可以解决这个冲突吗?

1 个答案:

答案 0 :(得分:10)

我正在使用gradle并遇到同样的问题,并根据this回答

解决了问题
compile ('org.glassfish.jersey.containers:jersey-container-servlet:2.14'){
    exclude module: 'javax.inject'
}
compile 'org.glassfish.hk2.external:javax.inject:2.4.0-b06'