W moim projekcie Android używam biblioteki, która jest dostępna jako jar. I umieścić go w sekcji Zależności tak:W kompilacji systemu Android Gradle, jak wykluczyć zależności z dołączonego pliku jar?
dependencies {
...
compile files('libs/thethirdpartylibrary.jar')
...
}
chcę też użyć okhttp biblioteki, które obejmują tak:
compile ('com.squareup.okhttp:okhttp:2.7.5')
(Ta szczególna wersja okhttp zależy okio 1.6 .0.)
Problem polega na tym, że biblioteka słoików trzeciej strony zależy od okio v0.9.0, a co gorsza, zawiera ją w pakiecie.
W wyniku tego pojawia się błąd konfliktu deksa w czasie kompilacji.
Udało mi się rozwiązać ten problem, ręcznie usuwając plik okio z pliku jar i wydaje się, że działa. Ale zastanawiam się, czy istnieje sposób, aby to zrobić w gradle.
Moje pytanie: czy mogę usunąć zależne, przechodnie (< - mam nadzieję, że używam tego słowa we właściwy sposób) zależności od zawartego słoika podczas kompilacji ze stopniem?
Każdy powód, dla którego nie można po prostu odtworzyć słoika stron trzecich, aby usunąć z niego klasy, których nie chcesz? Nie sądzę, że gradle pozwoli ci wybrać określone klasy, aby wykluczyć z zależności od pliku. –
Właściwie to właśnie teraz robię. Właśnie zastanawiałem się, czy istnieje (prosty) sposób to zrobić z gradle, tak, że nie muszę tego robić ręcznie za każdym razem, gdy zmienia się biblioteka dostawcy. – treesAreEverywhere
Witam, rozwiązałeś to? Czy możesz udostępnić swoje rozwiązanie? –