Android gradle模块具有相同的名称

ker*_*erl 7 java android gradle

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

    <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-client</artifactId>
        <version>2.17</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

但是,此依赖关系具有模块javax/inject的2个定义,如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
Run Code Online (Sandbox Code Playgroud)

在尝试运行Android应用程序时,我收到错误:

com.android.dex.DexException: Multiple dex files define L/javax/inject/Inject
Run Code Online (Sandbox Code Playgroud)

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

有没有其他解决方案来解决这个冲突?

Rob*_*Rob 10

我正在使用gradle并遇到同样的问题,并根据这个答案解决了它

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'
Run Code Online (Sandbox Code Playgroud)