web-dev-qa-db-fra.com

Dans une Android version Gradle, comment exclure les dépendances d'un fichier jar inclus?

Dans mon Android, j'utilise une bibliothèque qui se présente sous la forme d'un bocal. Je l'inclus dans la section des dépendances comme ceci:

dependencies {
    ...

    compile files('libs/thethirdpartylibrary.jar')
    ...
}

Je veux également utiliser la bibliothèque okhttp, que j'inclus comme ceci:

compile ('com.squareup.okhttp:okhttp:2.7.5')

(Cette version particulière d'okhttp dépend d'okio 1.6.0.)

Le problème est que la bibliothèque jar tierce dépend d'okio v0.9.0 et, pire encore, la regroupe.

Par conséquent, j'obtiens une erreur de conflit dex au moment de la génération.

J'ai pu résoudre ce problème en supprimant manuellement okio du fichier jar et cela semble fonctionner. Mais je me demande s'il y a un moyen de le faire en gradle.

Ma question: Puis-je supprimer les dépendances groupées et transitives (<- j'espère que j'utilise ce mot de la bonne manière) d'un pot inclus pendant la construction avec gradle?

18
treesAreEverywhere

Exclure le groupe dans les dépendances en utilisant les lignes ci-dessous.

1.    configurations {
        all*.exclude group: 'com.Android.support', module: 'support-v4'
    }



2.dependencies {
    compile 'com.Android.support:support-v4:13.0.+'
    compile ("com.xxx:xxx-commons:1.+") {
        exclude group: 'junit', module: 'junit'
    }
}



  3. configurations {
      runtime.exclude group: "org.slf4j", module: "slf4j-log4j12"
    }

Essaye celui-là. Pour plus de détails

30
Maheshwar Ligade

Selon cette discussion ici https://groups.google.com/forum/#!topic/adt-dev/g1AiJM7PeVs , ce que vous voulez faire n'est pas possible.

La syntaxe suggérée dans les autres réponses concerne les dépendances Maven "normales".

1
Johan Paul