我正在开发一个使用以下依赖项的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
我尝试排除这些模块中的任何一个,但这不起作用,因为依赖关系依赖于它们来进行方法调用。
还有其他解决方案可以解决这个冲突吗?
答案 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'