Jestem świadomy tego pytania: Dodawanie lokalnych plików .aar do mojej kompilacji Gradle, ale rozwiązanie nie działa dla mnie.
Próbowałem dodać to oświadczenie do najwyższego poziomu mojego build.gradle
pliku:
repositories {
mavenCentral()
flatDir {
dirs 'libs'
}
}
Włożyłem również slidingmenu.aar
plik do /libs
i odniosłem się do niego w dependencies
sekcji: compile 'com.slidingmenu.lib:slidingmenu:1.0.0@aar'
ale to w ogóle nie działało.
Ja też próbowałem, compile files('libs/slidingmenu.aar')
ale bez powodzenia.
czego mi brakuje? Jakieś pomysły?
PS Android Studio 0.8.2
android
android-studio
android-gradle-plugin
build.gradle
aar
Alexey Dmitriev
źródło
źródło
Odpowiedzi:
Opierając się na odpowiedzi Josiaha, oto jak to działa.
Postępuj zgodnie z jego instrukcjami (pod edycją) ( Plik -> Nowy-> Nowy moduł -> Importuj .JAR / .AAR ) i zaimportuj .AAR.
Następnie w swoim projekcie build.gradle (nie na najwyższym poziomie, ten pod 'app') dodaj następujące elementy (w sekcji zależności):
Uwaga Nazwa-Twojego-projektu powinna być zgodna z nazwą folderu, który został dodany po zaimportowaniu pliku AAR (na tym samym poziomie, co
app/.idea
w folderze najwyższego poziomu). Albo inaczej ...To zadziałało dla mnie z Androidem Studio 0.8.0. Nie zapomnij zsynchronizować gradle (za pomocą przycisku na pasku narzędzi lub w Plik-> Synchronizuj ) po wykonaniu tej czynności.
(Dziękuję Josiahowi za poprowadzenie mnie we właściwym kierunku)
(Uwaga: wcześniej próbowałem dodać go do folderu libs, próbując manipulować najwyższym poziomem
build.gradle
i poziomem aplikacjibuild.gradle
, ale nic z tego nie działało w przypadku moich plików aars - jar będzie działał dobrze, ale nie pliki aar)źródło
Error:(25, 0) Required keys [path] are missing from map {name=mylibrary-debug}.
jeśli używamcompile project(name:'mylibrary-debug')
… Czego mi brakuje?compile project(':Name-Of-Your-Project')
zastąpiłemName-Of-Your-Project
nazwą mojego pliku .aar (bez.aar
rozszerzenia). I zadziałało.Aktualizacja : jak wspomniał @ amram99, problem został rozwiązany w momencie wydania Android Studio v1.3.
Przetestowane i zweryfikowane z poniższymi specyfikacjami
Co teraz działa
Teraz możesz zaimportować lokalny plik aar za pomocą opcji Plik> Nowy> Nowy moduł> Importuj pakiet .JAR / .AAR w Android Studio v1.3
Jednak poniższa odpowiedź jest prawdziwa i skuteczna niezależnie od zmian w Android Studio, ponieważ jest ona oparta na skryptach gradle.
Stara odpowiedź: W ostatniej aktualizacji użytkownicy Androida złamali włączanie lokalnych plików AAR za pomocą opcji menu dodawania nowego modułu w Android Studio. Sprawdź problem wymieniony tutaj. Niezależnie od wszystkiego, co wchodzi i wychodzi z listy funkcji IDE, poniższa metoda działa, jeśli chodzi o pracę z lokalnymi plikami aar. (Przetestowałem ją dzisiaj):
Umieść plik aar w katalogu libs (utwórz go w razie potrzeby), a następnie dodaj następujący kod do pliku build.gradle:
źródło
repositories
Część idzie w różnychbuild.gradle
w celu pracy - globalny jeden.dependencies
Część idzie w modułubuild.gradle
. Dlatego otrzymałem błąd.Edycja: poprawnym sposobem (obecnie) wykorzystania lokalnego pliku AAR jako zależności kompilacji jest użycie kreatora importu modułów (Plik | Nowy moduł | Importuj pakiet .JAR lub .AAR), który automatycznie doda plik .aar jako moduł biblioteki w swoim projekcie.
Stara odpowiedź
Spróbuj tego:
źródło
flatDir { dirs 'libs' }
Mam to działające na Android Studio 2.1. Mam moduł o nazwie „Native_Ads”, który jest współużytkowany w wielu projektach.
Najpierw utworzyłem katalog w moim module Native_ads o nazwie „aars”, a następnie umieściłem tam plik aar.
Struktura katalogów:
Następnie inne zmiany:
Plik Gradle najwyższego poziomu:
Plik build.gradle modułu aplikacji: - bez zmian
Plik settings.gradle (w tym moduł):
Plik Gradle dla modułu Native_Ads:
Otóż to. Oczyść i zbuduj.
źródło
Najłatwiej jest teraz dodać go jako moduł
Spowoduje to utworzenie nowego modułu zawierającego plik aar, więc wystarczy później dołączyć ten moduł jako zależność
źródło
next
przycisk jest wyszarzony wCreate New Module
oknie dialogowym po wybraniu ImportujJAR/AAR Package
?.aar
plik znajduje się w katalogu projektu, po prostu umieściłem plik.aar
na pulpicie i ponowiłem próbę i działa, dzięki za rozwiązanie!so you just need to include that module as a dependency afterwards
- jak to robisz?include
wsettings.gradle
miał być za mało. Mam to działające. Dzięki!To jest moja struktura i jak to rozwiązuję:
Na build.gradle
z Project / app / myModulesFolder / myLibXYZ
Położyłem to:
Gotowe i działa dobrze, mój podmoduł XYZ zależy od biblioteki z głównego modułu.
źródło
Możesz to zrobić w ten sposób. Musi mieć format Maven:
Następnie AAR musi przejść do struktury folderów dla identyfikatora grupy „com.example”:
Następnie odniesienie jako zależność:
compile 'com.example:myaar:version@aar'
Gdzie
version
jest wersja twojego pliku aar (np. 3.0 itd.)źródło
Dla każdego, kto ma ten problem od Android Studio 1.4, uruchomiłem go, tworząc moduł w ramach projektu, który zawiera 2 rzeczy.
build.gradle z następującą zawartością:
configurations.create("default")
artifacts.add("default", file('facebook-android-sdk-4.7.0.aar'))
plik aar (w tym przykładzie „facebook-android-sdk-4.7.0.aar”)
Następnie dołącz nową bibliotekę jako zależność modułu. Teraz możesz użyć zbudowanego aar bez uwzględniania źródeł w projekcie.
Podziękowania dla Facebooka za ten hack. Rozwiązanie znalazłem podczas integracji Android SDK z projektem.
źródło
apply plugin: 'com.android.application'
naapply plugin: 'com.android.library'
W moim przypadku żadna z powyższych odpowiedzi nie zadziałała! ponieważ po prostu dodałem różne produkty o smaku
repositories{ flatDir{ dirs 'libs' } }
nie działał! Skończyło się na określeniu dokładnej lokalizacji katalogu libs :
}
Chyba należy wprowadzić flatDirs takie jak ten, gdy w build.gradle są różne smaki produktu
źródło
W moim przypadku po prostu umieściłem plik aar w libs i dodaję
dependencies { ... api fileTree(dir: 'libs', include: ['*.aar']) ... }
w build.gradle i działa. Myślę, że jest podobnie z domyślną generowaną zależnością:
implementation fileTree(dir: 'libs', include: ['*.jar'])
źródło
Ta linia zawiera wszystkie pliki
aar
ijar
pliki zlibs
folderu:źródło
To rozwiązanie działa z Android Studio 4.0.1.
Oprócz stworzenia nowego modułu zgodnie z powyższym rozwiązaniem, możesz wypróbować to rozwiązanie.
Jeśli posiadasz wiele modułów w swojej aplikacji i chcesz dodać aar tylko do jednego z nich, to takie rozwiązanie się przyda.
W projekcie głównym build.gradle
Dodaj
Następnie w module, w którym chcesz dodać lokalnie plik .aar. po prostu dodaj poniższe wiersze kodu.
}
Miłego kodowania :)
źródło
Dodaj poniżej w projekcie implementacji pliku Gradle aplikacji (ścieżka: „: nazwa projektu”)
źródło
Jeśli korzystasz już z Kotlin Gradle DSL, alternatywa dla korzystania z niego w ten sposób:
Oto struktura mojego projektu
Mój
app/build.gradle.kts
fileTree
flatDirs
group
Była potrzebna, ze względu na obowiązkowe (nie ma opcjonalnego / wartość domyślna) w Kotlinimplementation
, patrz poniżej:Zastrzeżenie: Różnica przy zastosowaniu
flatDirs
podejścia nr 1 i nr 2, nadal nie wiem zbyt wiele, możesz chcieć edytować / skomentować tę odpowiedź.Bibliografia:
źródło
To rozwiązanie działa z Android Studio 4.0.1.
Oprócz stworzenia nowego modułu zgodnie z powyższym rozwiązaniem, możesz wypróbować to rozwiązanie.
Jeśli posiadasz wiele modułów w swojej aplikacji i chcesz dodać
aar
tylko jeden moduł, to takie rozwiązanie się przyda.W projekcie głównym
build.gradle
dodajNastępnie w module, w którym chcesz dodać
.aar
plik lokalnie, po prostu dodaj wiersze kodu poniżej:źródło