Erstellen Sie eine aar-Datei in Android Studio

Ich möchte eine AAR-Datei für meine Bibliothek in Android Studio erstellen, würde ich mit einer JAR-Option gehen, aber meine Bibliothek verfügt über Ressourcen.

Gibt es eine Idee, wie man eine AAR-Datei aus einer Bibliothek erstellt?

Wenn Ihre Bibliothek als Android-Bibliothek eingerichtet ist (dh sie verwendet das apply plugin: 'com.android.library' in apply plugin: 'com.android.library' in ihrer build.gradle-Datei), wird beim Erstellen ein .aar ausgegeben. Es wird im Verzeichnis build / outputs / aar / im Verzeichnis Ihres Moduls angezeigt.

Sie können den Typ “Android-Bibliothek” unter Datei> Neues Modul auswählen, um eine neue Android-Bibliothek zu erstellen.

Exportierte .aar-Datei von lokalen Builds abrufen

Wenn Sie ein Modul als Android-Bibliotheksprojekt definiert haben, erhalten Sie .aar-Dateien für alle Build-Varianten (standardmäßig debuggen und releasen) im Verzeichnis build/outputs/aar/ dieses Projekts.

 your-library-project |- build |- outputs |- aar |- appframework-debug.aar - appframework-release.aar 

Wenn diese Dateien nicht existieren, starten Sie einen Build mit

 gradlew assemble 

Details zum Bibliotheksprojekt

Ein Bibliotheksprojekt hat eine build.gradle Datei, die das apply plugin: com.android.library . Als Referenz für diese als .aar Datei gepackte Bibliothek .aar Sie einige Eigenschaften wie Paket und Version definieren.

Beispiel build.gradle Datei für Bibliothek (dieses Beispiel enthält eine Verschleierung in der 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' } } } 

Referenz .aar-Datei in Ihrem Projekt

In Ihrem App-Projekt können Sie diese .aar Datei im Ordner libs build.gradle und die Datei build.gradle aktualisieren, build.gradle auf diese Bibliothek verweist, indem Sie das folgende Beispiel verwenden:

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

Alternative Optionen zum Verweisen auf lokale Abhängigkeitsdateien in Gradle finden Sie unter: http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project

Abhängigkeiten mit Maven teilen

Wenn Sie diese .aar Dateien in Ihrer Organisation freigeben müssen, .aar Sie auf maven. Eine nette Zusammenfassung zu diesem Thema finden Sie unter: https://web.archive.org/web/20141002122437/http://blog.glassdiary.com/post/67134169807/how-to-share-android-archive- Bibliothek-aar-across

Über das .aar-Dateiformat

Eine AAR-Datei ist nur eine .zip Datei mit einer alternativen Erweiterung und einem bestimmten Inhalt. Details finden Sie in diesem Link zum aar-Format .

genau wie Benutzer hcpl sagte, aber wenn Sie sich nicht um die Version der Bibliothek kümmern möchten, können Sie dies tun:

 dependencies { compile(name:'mylibrary', ext:'aar') } 

wie es nervig ist, die Version jedes Mal zu aktualisieren. Außerdem macht es dem Benutzer auf diese Weise keine Sorgen um den Namensraum.

btw @aar hat keine transitive Abhängigkeit. Sie benötigen einen Parameter, um sie einzuschalten : Transitive Abhängigkeiten, die nicht für eine Bibliothek mit Gradle aufgetriggers werden