Saya ingin membuat file aar untuk perpustakaan saya di Android Studio, saya akan menggunakan opsi jar tetapi perpustakaan saya memiliki sumber daya.
Adakah yang tahu cara membuat file aar dari perpustakaan?
Saya ingin membuat file aar untuk perpustakaan saya di Android Studio, saya akan menggunakan opsi jar tetapi perpustakaan saya memiliki sumber daya.
Adakah yang tahu cara membuat file aar dari perpustakaan?
Jawaban:
Jika pustaka Anda diatur sebagai pustaka Android (yaitu ia menggunakan apply plugin: 'com.android.library'
pernyataan dalam file build.gradle), itu akan menampilkan .aar ketika itu dibangun. Ini akan muncul di direktori build / outputs / aar / di direktori modul Anda.
Anda dapat memilih jenis "Perpustakaan Android" dalam File> Modul Baru untuk membuat Perpustakaan Android baru.
aar
, saya harus melakukan Build > Rebuild Project
di Android Studio. Cukup menjalankan, men-debug, atau membuat APK tidak menghasilkan aar
untuk saya.
./gradlew moduleName:assembleRelease
di tab terminal
Jika Anda memiliki modul yang didefinisikan sebagai proyek perpustakaan android, Anda akan mendapatkan file .aar untuk semua rasa yang dibuat (debug dan lepaskan secara default) di build/outputs/aar/
direktori proyek itu.
your-library-project
|- build
|- outputs
|- aar
|- appframework-debug.aar
- appframework-release.aar
Jika file-file ini tidak ada, mulailah membangun dengan
gradlew assemble
untuk pengguna macOS
./gradlew assemble
Proyek perpustakaan memiliki build.gradle
file yang berisi apply plugin: com.android.library
. Untuk referensi pustaka ini yang dikemas sebagai .aar
file Anda harus mendefinisikan beberapa properti seperti paket dan versi.
Contoh build.gradle
file untuk perpustakaan (contoh ini termasuk kebingungan dalam rilis):
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'
}
}
}
Dalam proyek aplikasi Anda, Anda dapat meletakkan .aar
file ini di libs
folder dan memperbarui build.gradle
file untuk referensi perpustakaan ini menggunakan contoh di bawah ini:
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'
}
Opsi alternatif untuk mereferensikan file dependensi lokal secara bertahap dapat ditemukan di: http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project
Jika Anda perlu membagikan .aar
file - file ini dalam organisasi Anda, periksa pakar. Tulisan yang bagus tentang topik ini dapat ditemukan di: https://web.archive.org/web/20141002122437/http://blog.glassdiary.com/post/67134169807/how-to-share-android-archive- perpustakaan-aar-seberang
File aar hanya .zip
dengan ekstensi alternatif dan konten tertentu. Untuk detail, periksa tautan ini tentang format aar .
gradlew assemble
- yang memecahkan masalah yang saya alami.
gradlew
adalah skrip dalam direktori tingkat atas proyek .
seperti kata pengguna hcpl tetapi jika Anda tidak ingin khawatir tentang versi pustaka, Anda dapat melakukan ini:
dependencies {
compile(name:'mylibrary', ext:'aar')
}
sebagai jenis menjengkelkan harus memperbarui versi setiap saat. Ini juga membuat tidak khawatir tentang ruang nama lebih mudah dengan cara ini.
Setelah mengikuti langkah pertama dan kedua yang disebutkan dalam jawaban hcpl di utas yang sama , kami menambahkan , '* .aar'], dir: 'libs' di app-android-app-project-based-on-gradle / app / kami / file build.gradle seperti yang ditunjukkan di bawah ini:
...
dependencies {
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
...
Versi gradle kami adalah com.android.tools.build:gradle:3.2.1
Untuk membuat AAR
saat membuat ikuti langkah-langkah di bawah ini.
File->New->New Module->Android Library and create
.
Untuk menghasilkan AAR
Pergi ke gradle di panel kanan atas di studio android ikuti langkah-langkah di bawah ini.
Gradle->Drop down library name -> tasks-> build-> assemble or assemble release
AAR akan dihasilkan dalam build / outputs / aar /
Tetapi jika kita ingin AAR dihasilkan di folder tertentu dalam direktori proyek dengan nama yang Anda inginkan, ubah level aplikasi Anda build.gradle
seperti di bawah ini
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")
}
}
}
Sekarang akan membuat folder dengan nama "rilis" di direktori proyek yang akan memiliki AAR.
btw @ aar tidak memiliki ketergantungan transitif. Anda memerlukan parameter untuk menyalakannya: Ketergantungan transitif tidak diselesaikan untuk perpustakaan aar menggunakan gradle