Я хотів би створити файл aar для своєї бібліотеки в Android Studio, я б пішов із варіантом jar, але моя бібліотека має ресурси.
Будь-яка ідея, як створити файл aar з бібліотеки?
Я хотів би створити файл aar для своєї бібліотеки в Android Studio, я б пішов із варіантом jar, але моя бібліотека має ресурси.
Будь-яка ідея, як створити файл aar з бібліотеки?
Відповіді:
Якщо ваша бібліотека створена як бібліотека Android (тобто вона використовує apply plugin: 'com.android.library'
оператор у своєму файлі build.gradle), вона буде виводити .aar під час її побудови. Він відображатиметься у каталозі build / outputs / 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
Якщо цих файлів не існує, запустіть збірку
gradlew assemble
для користувачів macOS
./gradlew assemble
Бібліотечний проект має build.gradle
файл, що містить apply plugin: com.android.library
. Для довідки про цю бібліотеку, упаковану як .aar
файл, вам доведеться визначити деякі властивості, такі як пакунок та версія.
Приклад build.gradle
файлу для бібліотеки (цей приклад включає затухання у випуску):
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'
}
Альтернативні варіанти посилання на файли локальних залежностей у gradle можна знайти за посиланням: 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 - це лише a .zip
з альтернативним розширенням та конкретним вмістом. Для детальної інформації перевірте це посилання про формат aar .
gradlew assemble
- це вирішило проблему, яку я мав.
gradlew
це скрипт у каталозі верхнього рівня проекту .
так, як сказав hcpl користувача, але якщо ви не хочете турбуватися про версію бібліотеки, ви можете зробити це:
dependencies {
compile(name:'mylibrary', ext:'aar')
}
як свого роду дратує, що доведеться щоразу оновлювати версію. Також це полегшує не турбуватися про простір імен таким чином.
Дотримуючись першого та другого кроків, зазначених у відповіді hcpl у тому ж потоці , ми додали : '* .aar'], dir: 'libs' у нашому-android-app-project-project-based-on-gradle / 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 вгорі правої панелі в андроїд-студії, виконайте наступні кроки.
Gradle->Drop down library name -> tasks-> build-> assemble or assemble release
AAR буде генеруватися у збірці / виходи / 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 не має перехідної залежності. вам потрібен параметр, щоб увімкнути його: Перехідні залежності не вирішені для бібліотеки aar за допомогою gradle