Ich möchte eine AAR-Datei für meine Bibliothek in Android Studio erstellen. Ich hätte eine jar-Option gewählt, aber meine Bibliothek hat Ressourcen.
Irgendeine Idee, wie man eine AAR-Datei aus einer Bibliothek erstellt?
Wenn Ihre Bibliothek als Android-Bibliothek eingerichtet ist (d. H. Sie verwendet die Anweisung apply plugin: 'com.Android.library'
in der Datei build.gradle), wird beim Erstellen eine .aar-Datei ausgegeben. Es wird im angezeigt build/output/aar / Verzeichnis im Verzeichnis Ihres Moduls.
Sie können den Typ "Android-Bibliothek" unter "Datei"> "Neues Modul" auswählen, um eine neue Android-Bibliothek zu erstellen.
Wenn Sie ein Modul als Android-Bibliotheksprojekt definiert haben, erhalten Sie .aar-Dateien für alle Build-Varianten (standardmäßig Debug und Release) im Verzeichnis build/outputs/aar/
dieses Projekts.
your-library-project
|- build
|- outputs
|- aar
|- appframework-debug.aar
- appframework-release.aar
Wenn diese Dateien nicht vorhanden sind, starten Sie einen Build mit
gradlew assemble
Ein Bibliotheksprojekt hat eine build.gradle
-Datei, die apply plugin: com.Android.library
enthält. Als Referenz für diese Bibliothek, die als .aar
-Datei gepackt ist, müssen Sie einige Eigenschaften wie Paket und Version definieren.
Beispiel build.gradle
-Datei für die Bibliothek (dieses Beispiel enthält Verschleierung in der Veröffentlichung):
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'
}
}
}
In Ihrem App-Projekt können Sie diese .aar
-Datei im Ordner libs
ablegen und die build.gradle
-Datei mit dem folgenden Beispiel aktualisieren, um auf diese Bibliothek zu verweisen:
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:[email protected]'
}
Alternative Optionen zum Referenzieren lokaler Abhängigkeitsdateien in Gradle finden Sie unter: http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-Android-project
Wenn Sie diese .aar
-Dateien in Ihrer Organisation freigeben müssen, überprüfen Sie maven. Eine schöne Zusammenfassung zu diesem Thema finden Sie unter: https://web.archive.org/web/20141002122437/http://blog.glassdiary.com/post/67134169807/how-to-share-Android- Archiv-Bibliothek-aar-across
Eine AAR-Datei ist nur ein .Zip
mit einer alternativen Erweiterung und spezifischem Inhalt. Für Details überprüfen Sie diesen Link über das AAR-Format .
genauso wie der Benutzer hcpl sagte, aber wenn Sie sich keine Gedanken über die Version der Bibliothek machen wollen, können Sie Folgendes tun:
dependencies {
compile(name:'mylibrary', ext:'aar')
}
es ist ärgerlich, die Version jedes Mal aktualisieren zu müssen. Dadurch wird es auch einfacher, sich nicht um den Namensraum zu kümmern.
btw @aar hat keine transitive Abhängigkeit. Sie benötigen einen Parameter, um es zu aktivieren: Transitive Abhängigkeiten, die für aar library nicht mit gradle aufgelöst werden
Nachdem wir den ersten und zweiten Schritt in der Antwort von hcpl in demselben Thread gefolgt haben , fügten wir , '* .aar'], dir: 'libs' in unserem Android-App-Projekt hinzu. Datei basierend auf Gradle/app/build.gradle wie unten gezeigt:
...
dependencies {
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
...
Unsere Gradle-Version ist com.Android.tools.build:gradle: 3.2.1