Androidプロジェクトでは、jarとして提供されるライブラリを使用します。次のように依存関係セクションに含めます。
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競合エラーが発生します。
私はjarファイルからokioを手動で削除することでこれを解決することができましたが、これはうまくいくようです。しかし、私はこれをgradleで行う方法があるかどうか疑問に思っています。
私の質問:バンドルされた推移的な(<-このWordを正しい方法で使用していることを願っています)依存関係を、gradleでのビルド時に含まれている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依存関係用です。