Tôi muốn tạo một tệp aar cho thư viện của mình trong Android Studio, tôi đã đi với tùy chọn jar nhưng thư viện của tôi có tài nguyên.
Bất kỳ ý tưởng làm thế nào để tạo một tập tin aar từ một thư viện?
Tôi muốn tạo một tệp aar cho thư viện của mình trong Android Studio, tôi đã đi với tùy chọn jar nhưng thư viện của tôi có tài nguyên.
Bất kỳ ý tưởng làm thế nào để tạo một tập tin aar từ một thư viện?
Câu trả lời:
Nếu thư viện của bạn được thiết lập dưới dạng thư viện Android (nghĩa là nó sử dụng apply plugin: 'com.android.library'
câu lệnh trong tệp build.gradle của nó), nó sẽ xuất ra một .aar khi nó được xây dựng. Nó sẽ hiển thị trong thư mục build / output / aar / trong thư mục của mô-đun của bạn.
Bạn có thể chọn loại "Thư viện Android" trong Tệp> Mô-đun mới để tạo Thư viện Android mới.
aar
, tôi phải thực hiện Build > Rebuild Project
trong Android Studio. Chỉ đơn giản là chạy, gỡ lỗi hoặc APK xây dựng không tạo ra aar
cho tôi.
./gradlew moduleName:assembleRelease
trong tab thiết bị đầu cuối
Nếu bạn có một mô-đun được xác định là một dự án thư viện Android, bạn sẽ nhận được các tệp .aar cho tất cả các hương vị xây dựng (gỡ lỗi và phát hành theo mặc định) trong build/outputs/aar/
thư mục của dự án đó.
your-library-project
|- build
|- outputs
|- aar
|- appframework-debug.aar
- appframework-release.aar
Nếu các tệp này không tồn tại, hãy bắt đầu xây dựng với
gradlew assemble
cho người dùng macOS
./gradlew assemble
Một dự án thư viện có một build.gradle
tập tin chứa apply plugin: com.android.library
. Để tham khảo thư viện này được đóng gói dưới dạng .aar
tệp, bạn sẽ phải xác định một số thuộc tính như gói và phiên bản.
build.gradle
Tệp ví dụ cho thư viện (ví dụ này bao gồm obfuscation trong bản phát hành):
apply plugin: 'com.android.library'
android {
compileSdkVersion 21
buildToolsVersion "21.1.0"
defaultConfig {
minSdkVersion 9
targetSdkVersion 21
versionCode 1
versionName "0.1.0"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
Trong dự án ứng dụng của bạn, bạn có thể thả .aar
tệp này vào libs
thư mục và cập nhật build.gradle
tệp để tham chiếu thư viện này bằng ví dụ dưới đây:
apply plugin: 'com.android.application'
repositories {
mavenCentral()
flatDir {
dirs 'libs' //this way we can find the .aar file in libs folder
}
}
android {
compileSdkVersion 21
buildToolsVersion "21.0.0"
defaultConfig {
minSdkVersion 14
targetSdkVersion 20
versionCode 4
versionName "0.4.0"
applicationId "yourdomain.yourpackage"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled false
}
}
}
dependencies {
compile 'be.hcpl.android.appframework:appframework:0.1.0@aar'
}
Các tùy chọn thay thế để tham chiếu các tệp phụ thuộc cục bộ trong lớp có thể được tìm thấy tại: http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project
Nếu bạn cần chia sẻ các .aar
tệp này trong tổ chức của mình, hãy kiểm tra maven. Một bài viết hay về chủ đề này có thể được tìm thấy tại: https://web.archive.org/web/20141002122437/http://blog.glassdiary.com/post/67134169807/how-to-share-android-archive- thư viện-aar-ngang
Một tệp aar chỉ là .zip
một phần mở rộng thay thế và nội dung cụ thể. Để biết chi tiết kiểm tra liên kết này về định dạng aar .
gradlew assemble
- điều đó đã giải quyết vấn đề tôi đang gặp phải.
gradlew
là một tập lệnh trong thư mục dự án toplevel .
giống như người dùng hcpl đã nói nhưng nếu bạn không muốn lo lắng về phiên bản của thư viện, bạn có thể làm điều này:
dependencies {
compile(name:'mylibrary', ext:'aar')
}
như là loại phiền toái của nó phải cập nhật phiên bản mọi lúc. Ngoài ra, nó làm cho việc không lo lắng về không gian tên dễ dàng hơn theo cách này.
Sau khi làm theo các bước đầu tiên và thứ hai được đề cập trong câu trả lời của hcpl trong cùng một chủ đề , chúng tôi đã thêm , '* .aar'], dir: 'libs' trong ứng dụng / ứng dụng dựa trên dự án / android-app-dựa trên dự án / ứng dụng / tập tin build.gradle như hình dưới đây:
...
dependencies {
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
...
Phiên bản lớp của chúng tôi là com.android.tools.build:gradle:3.2.1
Để tạo AAR
trong khi tạo theo các bước dưới đây.
File->New->New Module->Android Library and create
.
Để tạo AAR
Chuyển đến lớp ở trên cùng bên phải trong studio android theo các bước dưới đây.
Gradle->Drop down library name -> tasks-> build-> assemble or assemble release
AAR sẽ được tạo trong bản dựng / đầu ra / aar /
Nhưng nếu chúng tôi muốn AAR được tạo trong thư mục cụ thể trong thư mục dự án với tên bạn muốn, hãy sửa đổi cấp ứng dụng của bạn build.gradle
như bên dưới
defaultConfig {
minSdkVersion 26
targetSdkVersion 28
versionCode System.getenv("BUILD_NUMBER") as Integer ?: 1
versionName "0.0.${versionCode}"
libraryVariants.all { variant ->
variant.outputs.all { output ->
outputFileName = "/../../../../release/" + ("your_recommended_name.aar")
}
}
}
Bây giờ nó sẽ tạo thư mục có tên "phát hành" trong thư mục dự án sẽ có AAR.
btw @aar không có sự phụ thuộc quá độ. bạn cần một tham số để bật nó: Các phụ thuộc bắc cầu không được giải quyết cho thư viện aar bằng cách sử dụng gradle