web-dev-qa-db-fra.com

Créer un fichier dans Android Studio

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?

138
AndroidEnthusiast

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.

184
Scott Barta

Récupérer le fichier .aar exporté à partir de versions locales

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

Détails du projet de bibliothèque

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'
        }
    }
}

Fichier .aar de référence dans votre projet

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

Partage des dépendances à l'aide de maven

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

À propos du format de fichier .aar

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 .

136
hcpl

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. 

9
j2emanue

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

2
cn123h

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

0
Dhananjay M