Tôi đã làm việc trên một thư viện Android (một ứng dụng khách API) sử dụng Retrofit và Joda DateTime.Tệp AAR cục bộ không quản lý các phụ thuộc
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'
}
Bây giờ thư viện được hoàn thành tôi biên soạn nó thành một tập tin AAR và tôi muốn sử dụng nó trong một ứng dụng, vì vậy tôi đã thêm nó vào thư mục libs của ứng dụng và đưa nó vào file build.gradle như vậy:
dependencies {
compile(name:'s3papiandroidclient', ext:'aar')
//Some other things
}
Tuy nhiên, khi tôi cố gắng để khởi tạo client API từ thư viện, các ứng dụng bị treo khi nói đến gọi đối tượng từ retrofit hoặc DateTime (Ví dụ, retrofit.RestAdapter). Dường như Gradle không đọc các phụ thuộc từ thư viện AAR, do đó không cài đặt Retrofit và DateTime trong ứng dụng của tôi. Tôi đã cố gắng sử dụng thông số transitive=true
trên tệp AAR của tôi, không giúp ích gì.
Điểm khác có thể giúp, tôi đã cố tạo tệp POM và phụ thuộc cũng không xuất hiện trong tệp đó. Có vẻ như có điều gì đó đang xảy ra với những thứ này và tôi hoàn toàn bị mắc kẹt trên đó.
Cách giải quyết duy nhất tôi có thể tìm là thêm các phụ thuộc theo cách thủ công từ tệp AAR vào tệp build.gradle của ứng dụng nhưng không có ý nghĩa, tôi cho rằng Gradle có thể tự nhập phụ thuộc!
Kính trọng,
Gyoo.
@Gyoo: FWIW, [đây là một trong các thư viện của tôi] (https://github.com/commonsguy/cwac-presentation) có sự phụ thuộc vào [một thư viện khác của tôi] (http: // github. com/commonsguy/cwac-layouts). Tôi sử dụng plugin 'maven' và nhiệm vụ' uploadArchives' để tạo POM và sao chép nó cùng với AAR vào một kho lưu trữ cục bộ (sau đó tôi đồng bộ hóa với kho lưu trữ công khai của riêng mình trên Amazon S3). – CommonsWare