apklib nie zawiera plików obiektowych, tylko pliki źródłowe, więc jedynym sposobem może być zawarte w każdy projekt jest przez rekompilację go. Według niektórych docs można przeczytać pod adresem:
Android dependencies : apklib vs aar files i https://plus.google.com/+ChristopherBroadfoot/posts/7uyipf8DTau
Format apklib został wynaleziony jako sposób dzielenia kodu Androida + zasobów. Jest to w zasadzie skompresowany projekt biblioteki Androida, który był już status quo dla udostępniania kodu i zasobów.
I można zobaczyć w poście Chris Broadfoot, że zadanie, które generuje apklib prostu suwakami zapasową pliku AndroidManifest.xml
i src
i res
katalogach:
task apklib(type: Zip) {
appendix = extension = 'apklib'
from 'AndroidManifest.xml'
into('res') {
from 'res'
}
into('src') {
from 'src'
}
}
Zauważ, że jego stanowisko jest o tworzeniu apklib z Gradle, co jest nieco dziwną rzeczą do zrobienia, ale daje całkiem jasne wyobrażenie o strukturze jednej z tych rzeczy.
Dobrą wiadomością jest to, że jest to "standardowa" struktura projektu Androida od momentu, gdy Eclipse był podstawowym IDE, a Android Studio wie, jak importować moduły, które wyglądają tak. Wykonaj następujące kroki:
Rozpakuj apklib do katalogu tymczasowego. Jest w formacie zip, więc powinno działać coś takiego jak unzip library.apklib
.
Sprawdź, co się nie rozpakowało. Powinieneś zobaczyć katalog zawierający foldery AndroidManifest.xml
, src
i res
.
W Android Studio, wewnątrz istniejącego projektu, wybierz polecenie Plik> module import i skierować go w katalogu z kroku 2.
Android Studio powinien zarządzać importu poprzez kopiowanie plików do projektu w nowym moduł, układając je w preferowanej strukturze katalogów i dodając do modułu plik build.gradle
.
W tym momencie jesteś gotowy do pracy. Jeśli rzeczywiście chcesz plik .aar
, sprawdź, czy twój nowy moduł jest skonfigurowany jako moduł biblioteczny lub moduł aplikacji.W swoim build.gradle
, jeśli masz apply plugin: 'com.android.library'
, to jest to moduł biblioteczny, a Gradle wygeneruje .aar
jako część kompilacji: po pomyślnej kompilacji znajdzie się w katalogu build/outputs/aar
.
Jeśli moduł importowane jako moduł aplikacji, a nie biblioteki (apply plugin: 'com.android.application'
, a następnie zmienić ten apply plugin
oświadczenie, a może trzeba także usunąć oświadczenie applicationId
z pliku kompilacji. Teraz należy go skompilować jako biblioteka i generować .aar
.
Szczęśliwy kodowania!
Dziękuję. do tej pory wiem, że nie ma out-of-the-box rozwiązanie, aby to zrobić, ale nadal szukam wszelkich pomysłów na jak przeprowadzić migrację z 'apklib' na' aar' bez ręcznej rekompilacji każdej z bibliotek (biorąc pod uwagę, że nie są jeszcze wdrożone jako 'aar'). –