Chciałbym utworzyć plik aar dla mojej biblioteki w Android Studio, wybrałbym opcję jar, ale moja biblioteka ma zasoby.
Masz pomysł, jak utworzyć plik aar z biblioteki?
Chciałbym utworzyć plik aar dla mojej biblioteki w Android Studio, wybrałbym opcję jar, ale moja biblioteka ma zasoby.
Masz pomysł, jak utworzyć plik aar z biblioteki?
Odpowiedzi:
Jeśli twoja biblioteka jest skonfigurowana jako biblioteka systemu Android (tj. Używa apply plugin: 'com.android.library'
instrukcji w swoim pliku build.gradle), po zbudowaniu wyświetli .aar. Pojawi się w kompilacji / wyjściach / aar / katalogu twojego modułu.
Możesz wybrać typ „Biblioteka Androida” w Plik> Nowy moduł, aby utworzyć nową bibliotekę Androida.
aar
, musiałem zrobić Build > Rebuild Project
w Android Studio. Po prostu uruchomienie, debugowanie lub utworzenie pliku APK nie wygenerowało aar
dla mnie pliku.
./gradlew moduleName:assembleRelease
na karcie terminala
Jeśli masz moduł zdefiniowany jako projekt biblioteki systemu Android, otrzymasz pliki .aar dla wszystkich wersji kompilacji (domyślnie debugowanie i wydanie) w build/outputs/aar/
katalogu tego projektu.
your-library-project
|- build
|- outputs
|- aar
|- appframework-debug.aar
- appframework-release.aar
Jeśli te pliki nie istnieją, rozpocznij kompilację z rozszerzeniem
gradlew assemble
dla użytkowników macOS
./gradlew assemble
Projekt biblioteki zawiera build.gradle
plik zawierający apply plugin: com.android.library
. Aby uzyskać informacje o tej bibliotece spakowanej jako .aar
plik, musisz zdefiniować niektóre właściwości, takie jak pakiet i wersja.
Przykładowy build.gradle
plik biblioteki (ten przykład obejmuje zaciemnianie w wersji):
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'
}
}
}
W projekcie aplikacji możesz upuścić ten .aar
plik w libs
folderze i zaktualizować build.gradle
plik, aby odwoływał się do tej biblioteki, korzystając z poniższego przykładu:
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'
}
Alternatywne opcje odwoływania się do lokalnych plików zależności w gradle można znaleźć pod adresem : http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project
Jeśli chcesz udostępnić te .aar
pliki w swojej organizacji, odwiedź stronę Maven. Miły opis na ten temat można znaleźć pod adresem : https://web.archive.org/web/20141002122437/http://blog.glassdiary.com/post/67134169807/how-to-share-android-archive- biblioteka-aar-w poprzek
Plik aar to po prostu plik .zip
z alternatywnym rozszerzeniem i określoną zawartością. Aby uzyskać szczegółowe informacje, sprawdź to łącze dotyczące formatu aar .
gradlew assemble
- to rozwiązało problem, który miałem.
gradlew
to skrypt w katalogu najwyższego poziomu projektu .
tak jak powiedział użytkownik hcpl, ale jeśli nie chcesz się martwić o wersję biblioteki, możesz to zrobić:
dependencies {
compile(name:'mylibrary', ext:'aar')
}
to trochę irytujące, że trzeba aktualizować wersję za każdym razem. W ten sposób ułatwia to również nie martwienie się o przestrzeń nazw.
Po wykonaniu pierwszego i drugiego kroku wymienionego w odpowiedzi hcpl w tym samym wątku , dodaliśmy „* .aar”], dir: „libs” w naszym projekcie-android-app-project-on-gradle / app / build.gradle, jak pokazano poniżej:
...
dependencies {
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
...
Nasza wersja gradle to com.android.tools.build:gradle:3.2.1
Aby utworzyć AAR
podczas tworzenia wykonaj poniższe kroki.
File->New->New Module->Android Library and create
.
Aby wygenerować AAR
Przejdź do gradle w prawym górnym okienku w Android Studio, wykonaj poniższe kroki.
Gradle->Drop down library name -> tasks-> build-> assemble or assemble release
AAR zostanie wygenerowany w build / output / aar /
Ale jeśli chcemy, aby AAR był generowany w określonym folderze w katalogu projektu o żądanej nazwie, zmodyfikuj poziom aplikacji, build.gradle
jak poniżej
defaultConfig {
minSdkVersion 26
targetSdkVersion 28
versionCode System.getenv("BUILD_NUMBER") as Integer ?: 1
versionName "0.0.${versionCode}"
libraryVariants.all { variant ->
variant.outputs.all { output ->
outputFileName = "/../../../../release/" + ("your_recommended_name.aar")
}
}
}
Teraz utworzy folder o nazwie „release” w katalogu projektu, który będzie miał AAR.
btw @aar nie ma zależności przechodnich. potrzebujesz parametru, aby go włączyć: Zależności przechodnie nie zostały rozwiązane dla biblioteki aar przy użyciu gradle