Vì vậy, ngay bây giờ tôi có một dự án Thư viện, nói dự án Foo
phụ thuộc vào thư viện như OkHttp
.AAR có thể bao gồm các phụ thuộc transitive không?
Bây giờ, Foo
có bước xây dựng maven tạo ra AAR và đẩy nó lên nơi công cộng.
Vì vậy, bây giờ cho phép nói rằng tôi có dự án B, chúng tôi sẽ gọi nó là Bar
. Thanh là ứng dụng Android và Bar
tùy thuộc vào Foo
.
Vâng, tôi có điều đó. Tuy nhiên, khi tôi thực hiện một cuộc gọi đến một hàm public static
trong Foo
từ Bar
mà các cuộc gọi OkHttp
, tôi nhận được tin nhắn này:
java.lang.NoClassDefFoundError: com.squareup.okhttp.OkUrlFactory
at com.foo.sdk.utils.OkHttpStack.<init>(OkHttpStack.java:15)
Vì vậy, là một điều như vậy có thể? Hoặc sẽ Bar
cần phải tự phụ thuộc vào OkHttp
cũng như bất kỳ phụ thuộc nào khác Foo
có?
Tôi đang theo dõi cách tiếp cận đó mà không thành công nhiều. Theo phương pháp được giải thích trước đây, cài đặt của tôi phải như sau: 'biên dịch ('com.my:library:[email protected]') { transitive = true }' Nhưng khi tôi nhập thư viện cuối cùng vào dự án của tôi, lib chuyển tiếp bị thiếu. Tôi không có đầu mối về việc làm thế nào để tiến hành, bất kỳ ý tưởng? –
@MichaelKnight Nếu bạn bao gồm aar là tệp cục bộ bằng flatDir thì điều đó có nghĩa là aar không chứa phụ thuộc transitive, bạn nên bao gồm chúng theo cách thủ công. Tuy nhiên, nếu bạn đang tìm nạp aar từ, ví dụ, repo maven, thì thư viện sẽ mô tả những phụ thuộc mà nó đang sử dụng (trong tệp pom) và gradle có thể tự động tìm nạp chúng cho bạn. – NazarK
@MichaelKnight không hoạt động đối với tôi –