В сборке Android Gradle, как исключить зависимости из включенного файла jar?

В моем Android-проекте я использую библиотеку, которая поставляется как банку. Я включаю его в раздел зависимостей так:

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

Я также хочу использовать библиотеку okhttp, которую я включаю следующим образом:

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

(Эта конкретная версия okhttp зависит от okio 1.6.0.)

Проблема в том, что библиотека jar третьей стороны зависит от okio v0.9.0, а что еще хуже, связывает ее.

В результате я получаю ошибку конфликта dex во время сборки.

Я смог решить это, вручную удалив okio из файла jar, и это, похоже, сработает. Но мне интересно, есть ли способ сделать это в градле.

Мой вопрос: могу ли я удалить привязанные, переходные (<- Я надеюсь, что я использую это слово в правильном направлении) зависимости от включенной банки во время сборки с градиентом?

Исключите группу в зависимостях, используя приведенные ниже строки.

 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" } 

Попробуй это. Для более подробной информации

Согласно этой дискуссии здесь https://groups.google.com/forum/#!topic/adt-dev/g1AiJM7PeVs , то, что вы хотите сделать, невозможно.

Синтаксис, предложенный в других ответах, относится к «нормальным» зависимостям Maven.