2015-05-05 12 views
7

ich auf einem Android-Projekt arbeite, das die folgende Abhängigkeit verwendet:Android gradle Module mit dem gleichen Namen

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

jedoch diese Abhängigkeit 2 Definitionen des Moduls javax hat/einzuspritzen, wie hier in dem gradle Abhängigkeitsbaum gezeigt :

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

Beim Versuch, die Android-Anwendung ich erhalte den Fehler zu laufen:

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

Ich habe versucht, eines dieser Module auszublenden, aber das funktioniert nicht, da die Abhängigkeit von beiden abhängig ist, um Methodenaufrufe auszuführen.

Gibt es andere Lösungen, um diesen Konflikt zu lösen?

+0

Vielleicht helfen diese Frage? http://stackoverflow.com/questions/20989317/multiple-dex-files-define-landroid-support-v4-accessibilityservice-accessibility – hellyale

Antwort

10

Ich bin mit gradle und hatte das gleiche Problem und löste es auf this Antwort nach

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

Superboss es funktioniert für mich –

+0

Ich habe dies: 'Implementierung ('org.glassfish.jersey .containers: Jersey-Servlet-Container: 2.25.1') { Modul auszuschließen: 'javax.inject' } Implementierung ‚org.glassfish.hk2.external: javax.inject: 2.4.0-b06'' Aber es funktioniert nicht. sagt UnexpectedInput. –

Verwandte Themen