Créer un fichier aar dans Android Studio

j'aimerais créer un fichier aar pour ma bibliothèque dans Android Studio, j'aurais choisi l'option jar mais ma bibliothèque a des ressources.

une idée de la façon de créer un fichier aar à partir d'une bibliothèque?

130
demandé sur Jéwôm' 2014-06-19 19:07:28

4 réponses

si votre bibliothèque est configurée comme une bibliothèque Android (i.e. elle utilise la déclaration apply plugin: 'com.android.library' dans sa compilation.gradle file), il affichera an .aar quand il est construit. Il apparaîtra dans le build/sorties/aar/ répertoire dans votre répertoire du module.

vous pouvez choisir le type" Android Library " dans le fichier > nouveau Module pour créer une nouvelle bibliothèque Android.

172
répondu Scott Barta 2015-04-08 12:51:00

récupérer exporté .aar fichier local construit

si vous avez un module défini comme un projet de bibliothèque android vous obtiendrez .les fichiers aar pour toutes les saveurs de construction (Débogage et libération 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, démarrer une compilation avec

gradlew assemble

détails du projet de bibliothèque

un projet de bibliothèque a un build.gradle dossier contenant apply plugin: com.android.library . Pour la référence de cette bibliothèque empaquetée comme un fichier .aar vous devrez définir certaines propriétés comme paquet et version.

exemple build.gradle fichier pour bibliothèque (cet exemple inclut l'obfuscation 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'
        }
    }
}

référence .fichier aar dans votre projet

dans votre projet app, vous pouvez déposer ce fichier .aar dans le dossier libs et mettre à jour le fichier build.gradle fichier de référence de 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'
}

D'autres options pour référencer les fichiers de dépendances locales dans gradle peuvent être trouvées à: 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 devez partager ces fichiers .aar au sein de votre organisation, consultez maven. Une belle écriture sur ce sujet peut être trouvé à: https://web.archive.org/web/20141002122437/http://blog.glassdiary.com/post/67134169807/how-to-share-android-archive-library-aar-across

à Propos de l' .aar format de fichier

un fichier aar est juste un .zip avec une extension alternative et un contenu spécifique. Pour plus de détails, consultez ce lien sur le format AAR .

129
répondu hcpl 2015-09-11 18:50:38

comme l'utilisateur hcpl l'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 son genre d'agaçant d'avoir à mettre à jour la version à chaque fois. Aussi, il rend le fait de ne pas se soucier de l'espace du nom plus facile de cette façon.

7
répondu j2emanue 2015-11-12 19:39:52

btw @aar n'a pas de dépendance transitive. vous avez besoin d'un paramètre pour l'activer: dépendances Transitives pas résolu par l'aar de la bibliothèque à l'aide de gradle

1
répondu cn123h 2017-05-23 10:31:37