Pracowałem nad biblioteką Android (klient API), która korzysta z Retrofit i Joda DateTime.Lokalny plik AAR nie zarządza zależnościami
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'joda-time:joda-time:2.8.1'
}
teraz, że biblioteka jest zakończona Skompilowałem go do pliku AAR i chcę go używać w aplikacji, więc dodałem go do folderu libs wniosku i włączyła ją w pliku build.gradle tak:
dependencies {
compile(name:'s3papiandroidclient', ext:'aar')
//Some other things
}
jednak gdy próbuję zainicjować klienta API z biblioteki, awarii aplikacji, jeśli chodzi o powołanie obiektów z modernizowanych lub DateTime (na przykład retrofit.RestAdapter). Wygląda na to, że Gradle nie odczytuje zależności z biblioteki AAR, dlatego nie instaluje Retrofit i DateTime w mojej aplikacji. Próbowałem użyć parametru transitive=true
w moim pliku AAR, nie pomaga.
Inny punkt, który może pomóc, próbowałem wygenerować plik POM, a zależności również się w nim nie pojawiają. Wygląda na to, że naprawdę coś się z tym dzieje i jestem całkowicie na tym.
Jedynym sposobem obejścia tego problemu jest ręczne dodanie zależności z pliku AAR do pliku build.gradle aplikacji, ale nie ma to sensu, zakładam, że Gradle może zaimportować zależności samodzielnie!
Pozdrawiam,
Gyoo.
@Gyoo: FWIW, [tutaj jest jedna z moich bibliotek] (https://github.com/commonsguy/cwac-presentation), która jest zależna od [innej mojej biblioteki] (http: // github. com/commonsguy/cwac-layouts). Używam wtyczki 'maven' i jej' uploadArchives' do generowania POM i kopiowania go wraz z AAR do lokalnego repozytorium (które następnie synchronizuję z moim własnym publicznym repozytorium artefaktów na Amazon S3). – CommonsWare