J'aimerais créer un fichier aar pour ma bibliothèque dans Android Studio. J'aurais opté pour une option jar mais ma bibliothèque dispose de ressources.
Une idée de comment créer un fichier AAR à partir d'une bibliothèque?
Si votre bibliothèque est configurée en tant que bibliothèque Android (c'est-à-dire qu'elle utilise l'instruction apply plugin: 'com.Android.library'
dans son fichier build.gradle), elle produira un fichier .aar lors de sa construction. Il apparaîtra dans le construire/sorties/aar / répertoire dans le répertoire de votre module.
Vous pouvez choisir le type "Bibliothèque Android" dans Fichier> Nouveau module pour créer une nouvelle bibliothèque Android.
Si vous avez un module défini comme projet de bibliothèque Android, vous obtiendrez des fichiers .aar pour toutes les versions (débogage et publication par défaut) dans le répertoire build/outputs/aar/
de ce projet.
your-library-project
|- build
|- outputs
|- aar
|- appframework-debug.aar
- appframework-release.aar
Si ces fichiers n'existent pas, lancez une construction avec
gradlew assemble
Un projet de bibliothèque a un fichier build.gradle
contenant apply plugin: com.Android.library
. Pour la référence de cette bibliothèque conditionnée dans un fichier .aar
, vous devrez définir certaines propriétés telles que package et version.
Exemple de fichier build.gradle
pour la bibliothèque (cet exemple inclut l'obscurcissement dans la version):
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'
}
}
}
Dans votre projet d'application, vous pouvez déposer ce fichier .aar
dans le dossier libs
et mettre à jour le fichier build.gradle
afin de référencer cette bibliothèque à l'aide de l'exemple ci-dessous:
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'
}
Des options alternatives pour référencer des fichiers de dépendance locaux dans gradle sont disponibles à l’adresse: http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-Android-project
Si vous avez besoin de partager ces fichiers .aar
au sein de votre organisation, consultez maven. On trouvera une belle rédaction sur ce sujet à l’adresse: https://web.archive.org/web/20141002122437/http://blog.glassdiary.com/post/67134169807/how-to-share-Android- archive-library-aar-across
Un fichier aar est simplement un .Zip
avec une extension alternative et un contenu spécifique. Pour plus de détails, consultez ce lien sur le format aar .
tout comme l'utilisateur hcpl a dit, mais si vous ne voulez pas vous soucier de la version de la bibliothèque, vous pouvez le faire
dependencies {
compile(name:'mylibrary', ext:'aar')
}
comme ce genre d’ennuyeux de devoir mettre à jour la version à chaque fois. En outre, cela simplifie les choses sans se soucier de l'espace de noms.
btw @aar n'a pas de dépendance transitive. vous avez besoin d’un paramètre pour l’activer: Dépendances transitives non résolues pour la bibliothèque aar à l’aide de gradle
Après avoir suivi les première et deuxième étapes mentionnées dans la réponse de hcpl dans le même fil , nous avons ajouté , '* .aar'], dir: 'libs' dans notre projet-notre-Android-app basé sur le fichier/app/build.gradle comme indiqué ci-dessous:
...
dependencies {
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
...
Notre version de la version est com.Android.tools.build:gradle:3.2.1