apklib không chứa các file đối tượng, chỉ có file nguồn, vì vậy cách duy nhất nó có thể được bao gồm trong dự án bất kỳ là bằng cách biên dịch lại nó. Theo một số tài liệu bạn có thể đọc tại địa chỉ:
Android dependencies : apklib vs aar files và https://plus.google.com/+ChristopherBroadfoot/posts/7uyipf8DTau
Định dạng apklib được phát minh như một cách để chia sẻ mã Android + tài nguyên. Về cơ bản, đó là một dự án thư viện Android đã được nén lên, vốn đã là nguyên trạng cho mã + chia sẻ tài nguyên.
Và bạn có thể thấy trong bài Chris Broadfoot rằng nhiệm vụ mà tạo ra các apklib chỉ kéo khóa lên AndroidManifest.xml
tập tin và các src
và res
thư mục:
task apklib(type: Zip) {
appendix = extension = 'apklib'
from 'AndroidManifest.xml'
into('res') {
from 'res'
}
into('src') {
from 'src'
}
}
Lưu ý rằng bài của ông là về việc tạo ra một apklib từ Gradle, đó là một điều hơi kỳ lạ để làm, nhưng nó cung cấp một ý tưởng khá rõ ràng về cách một trong những điều này được cấu trúc.
Tin tốt là đây là cấu trúc dự án Android "chuẩn" kể từ khi Eclipse là IDE chính và Android Studio biết cách nhập các mô-đun giống như thế này. Vì vậy, hãy làm theo các bước sau:
Giải nén gói ứng dụng vào thư mục tạm thời. Nó ở định dạng zip, vì vậy một cái gì đó như unzip library.apklib
sẽ hoạt động.
Nhìn vào những gì đang giải nén. Bạn sẽ thấy một thư mục chứa AndroidManifest.xml
, src
, và res
thư mục.
Trong Android Studio, bên trong một dự án hiện có, chọn File> Import Module và trỏ nó vào thư mục từ bước 2.
Android Studio nên quản lý việc nhập khẩu bằng cách sao chép các tập tin vào dự án của bạn trong một mới mô-đun, sắp xếp chúng trong cấu trúc thư mục ưa thích của nó và sẽ thêm một tệp build.gradle
cho mô-đun.
Tại thời điểm này bạn đang lên và chạy. Nếu bạn thực sự muốn tệp .aar
, hãy kiểm tra xem mô-đun mới của bạn có được thiết lập làm mô-đun thư viện hay mô-đun ứng dụng hay không.Trong build.gradle
của nó, nếu bạn đã có apply plugin: 'com.android.library'
thì đó là một module thư viện, và Gradle sẽ tạo ra một .aar
như một phần của việc xây dựng: nó sẽ nằm trong thư mục build/outputs/aar
sau một xây dựng thành công.
Nếu module của bạn nhập khẩu như là một module ứng dụng và không phải là một thư viện (apply plugin: 'com.android.application'
, sau đó thay đổi điều đó apply plugin
tuyên bố, và bạn cũng có thể cần phải loại bỏ các tuyên bố applicationId
từ việc xây dựng tập tin. Bây giờ nó nên biên dịch như một thư viện và tạo ra một .aar
.
Chúc mừng mã hóa!
Nguồn
2015-02-20 20:05:37
Cảm ơn bạn. cho đến nay tôi biết rằng không có giải pháp out-of-the-box để làm như vậy, nhưng tôi vẫn đang tìm kiếm bất kỳ ý tưởng về cách di chuyển từ 'apklib' sang' aar' mà không biên dịch lại từng thư viện (có tính đến việc chúng chưa được triển khai dưới dạng 'aar'). –