ฉันต้องการสร้างไฟล์ aar สำหรับห้องสมุดของฉันใน Android Studio ฉันจะใช้ตัวเลือก jar แต่ห้องสมุดของฉันมีทรัพยากร
มีความคิดวิธีสร้างไฟล์ aar จากห้องสมุดบ้างไหม?
ฉันต้องการสร้างไฟล์ aar สำหรับห้องสมุดของฉันใน Android Studio ฉันจะใช้ตัวเลือก jar แต่ห้องสมุดของฉันมีทรัพยากร
มีความคิดวิธีสร้างไฟล์ aar จากห้องสมุดบ้างไหม?
คำตอบ:
หากห้องสมุดของคุณตั้งค่าเป็นห้องสมุด Android (เช่นใช้apply plugin: 'com.android.library'
คำสั่งในไฟล์ build.gradle) มันจะส่งออก. aar เมื่อสร้างขึ้น มันจะปรากฏขึ้นในไดเรกทอรีการสร้าง / เอาท์พุท / aar /ในไดเรกทอรีของโมดูลของคุณ
คุณสามารถเลือกประเภท "ห้องสมุด Android" ในไฟล์> โมดูลใหม่เพื่อสร้างห้องสมุด Android ใหม่
aar
ฉันฉันต้องทำBuild > Rebuild Project
ใน Android Studio เพียงแค่เรียกใช้ดีบักหรือสร้าง APK ไม่ได้สร้างaar
สำหรับฉัน
./gradlew moduleName:assembleRelease
ในแท็บเทอร์มินัล
หากคุณมีโมดูลที่กำหนดเป็นโครงการห้องสมุด android คุณจะได้รับไฟล์. aar สำหรับการสร้างรสชาติทั้งหมด (ดีบั๊กและปล่อยตามค่าเริ่มต้น) ในbuild/outputs/aar/
ไดเรกทอรีของโครงการนั้น
your-library-project
|- build
|- outputs
|- aar
|- appframework-debug.aar
- appframework-release.aar
หากไฟล์เหล่านี้ไม่มีอยู่ให้เริ่ม build ด้วย
gradlew assemble
สำหรับผู้ใช้ macOS
./gradlew assemble
โครงการห้องสมุดมีไฟล์ที่มีbuild.gradle
apply plugin: com.android.library
สำหรับการอ้างอิงของไลบรารีนี้ที่รวมเป็น.aar
ไฟล์คุณจะต้องกำหนดคุณสมบัติบางอย่างเช่นแพ็คเกจและรุ่น
build.gradle
ไฟล์ตัวอย่างสำหรับไลบรารี (ตัวอย่างนี้รวมถึง obfuscation ในรีลีส):
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'
}
}
}
ในโครงการแอพของคุณคุณสามารถวาง.aar
ไฟล์นี้ในlibs
โฟลเดอร์และอัปเดตbuild.gradle
ไฟล์เพื่ออ้างอิงไลบรารีนี้โดยใช้ตัวอย่างด้านล่าง:
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'
}
ตัวเลือกทางเลือกสำหรับการอ้างอิงไฟล์อ้างอิงในเครื่องในระดับที่สามารถพบได้ที่: http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project
หากคุณต้องการแชร์.aar
ไฟล์เหล่านี้ภายในองค์กรของคุณลองใช้ maven สามารถเขียนบทความเกี่ยวกับหัวข้อนี้ได้ที่: https://web.archive.org/web/20141002122437/http://blog.glassdiary.com/post/67134169807/how-to-share-android-archive- ห้องสมุด AAR ข้าม
ไฟล์ aar เป็นเพียง.zip
ส่วนขยายอื่นและเนื้อหาที่เฉพาะเจาะจง สำหรับรายละเอียดการตรวจสอบการเชื่อมโยงนี้เกี่ยวกับรูปแบบ AAR
gradlew assemble
- นั่นช่วยแก้ไขปัญหาที่ฉันมี
gradlew
เป็นสคริปต์ในส่วนไดเรกทอรีระดับบนสุดของโครงการ
เช่นเดียวกับผู้ใช้ hcpl กล่าว แต่ถ้าคุณไม่ต้องการกังวลเกี่ยวกับเวอร์ชันของไลบรารี่คุณสามารถทำได้:
dependencies {
compile(name:'mylibrary', ext:'aar')
}
เป็นประเภทที่น่ารำคาญที่ต้องอัปเดตเวอร์ชันทุกครั้ง นอกจากนี้ยังทำให้ไม่ต้องกังวลเกี่ยวกับพื้นที่ชื่อได้ง่ายขึ้นด้วยวิธีนี้
หลังจากทำตามขั้นตอนแรกและขั้นตอนที่สองที่กล่าวถึงในคำตอบของ hcpl ในชุดข้อความเดียวกันเราได้เพิ่ม'* .aar'], dir: 'libs'ในโครงการ android-app ของเราบนพื้นฐานของการไล่ระดับ / แอพ / ไฟล์ build.gradle ที่แสดงด้านล่าง:
...
dependencies {
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
...
รุ่น gradle ของเราคือ com.android.tools.build:gradle:3.2.1
เพื่อสร้าง AAR
ในขณะที่สร้างตามขั้นตอนด้านล่าง
File->New->New Module->Android Library and create
.
เพื่อสร้าง AAR
ไปที่ gradle ที่บานหน้าต่างด้านขวาใน android studio ทำตามขั้นตอนด้านล่าง
Gradle->Drop down library name -> tasks-> build-> assemble or assemble release
AAR จะถูกสร้างขึ้นในbuild / outputs / aar /
แต่ถ้าเราต้องการให้ AAR สร้างขึ้นในโฟลเดอร์เฉพาะในไดเรกทอรีโครงการที่มีชื่อที่คุณต้องการให้แก้ไขระดับแอปของคุณbuild.gradle
เช่นด้านล่าง
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")
}
}
}
ตอนนี้มันจะสร้างโฟลเดอร์ที่มีชื่อ "release" ในไดเรกทอรีโครงการซึ่งจะมี AAR
btw @aar ไม่มีการพึ่งพาสกรรมกริยา คุณต้องใช้พารามิเตอร์เพื่อเปิดใช้งาน: การ อ้างอิงแบบ Transitive ไม่ได้รับการแก้ไขสำหรับไลบรารี aar โดยใช้การไล่ระดับสี