2015-05-05 22 views
7

pracuję nad Android projektu, który wykorzystuje następującą zależność:Android Gradle moduły o tej samej nazwie

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

Jednak ta zależność ma 2 definicje javax modułu/wstrzykują jak pokazano tutaj w Gradle drzewa zależności :

+--- 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 

Podczas próby uruchomienia aplikacji Android pojawia się błąd:

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

Próbowałem wyłączyć jeden z tych modułów, ale to nie działa, ponieważ zależność polega na ich obu do wywoływania metod.

Czy istnieją inne rozwiązania w celu rozwiązania tego konfliktu?

+0

Może to pytanie pomoże? http://stackoverflow.com/questions/20989317/multiple-dex-files-define-landroid-support-v4-accessibilityservice- accessibility – hellyale

Odpowiedz

10

Używam Gradle i miał ten sam problem i rozwiązać go według this odpowiedź

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' 
+0

wspaniały szef to działa dla mnie –

+0

Mam to: 'implementacja ('org.glassfish.jersey .containers: jersey-container-servlet: 2.25.1 ') { Wyklucz moduł:' javax.inject ' } implementacja "org.glassfish.hk2.external: javax.inject: 2.4.0-b06'' Ale to nie działa. Mówi nieoczekiwany wpis. –

Powiązane problemy