apklib non contiene file oggetto, solo i file sorgente, quindi l'unico modo in cui può essere incluso in qualsiasi progetto è ricompilandolo Secondo alcuni documenti si può leggere all'indirizzo:
Android dependencies : apklib vs aar files e https://plus.google.com/+ChristopherBroadfoot/posts/7uyipf8DTau
Il formato apklib è stato inventato come un modo per condividere il codice di Android + risorse. È essenzialmente un progetto di libreria Android compresso, che era già lo status quo per la condivisione di codice + risorsa.
E si può vedere nel post di Chris Broadfoot che il compito che genera l'apklib appena zip il file AndroidManifest.xml
e le directory src
e res
:
task apklib(type: Zip) {
appendix = extension = 'apklib'
from 'AndroidManifest.xml'
into('res') {
from 'res'
}
into('src') {
from 'src'
}
}
Nota che il suo post è sulla creazione di un apklib da Gradle, che è una cosa un po 'strana da voler fare, ma fornisce un'idea abbastanza chiara di come una di queste cose è strutturata.
La buona notizia è che questa è la struttura del progetto "standard" Android come di quando Eclipse è stato il primario IDE, e Android Studio sa come importare i moduli che assomigliano a questo. Quindi, attenersi alla seguente procedura:
Spacchettare il file apklib in una directory temporanea. È in formato zip, quindi qualcosa come unzip library.apklib
dovrebbe funzionare.
Guardate cosa sta spacchettato. Si dovrebbe vedere una directory contenente AndroidManifest.xml
, src
e res
cartelle.
In Android Studio, all'interno di un progetto esistente, scegliere File> Import Module e puntarlo verso la directory dal punto 2.
Android Studio dovrebbe gestire l'importazione copiando i file nel vostro progetto in una nuova modulo, disponendoli nella sua struttura di directory preferita e aggiungerà un file build.gradle
per il modulo.
A questo punto si è installato e funzionante. Se si desidera effettivamente il file .aar
, verificare se il nuovo modulo è configurato come modulo libreria o modulo applicazione.Nel suo build.gradle
, se si dispone di apply plugin: 'com.android.library'
, si tratta di un modulo libreria e Gradle genererà un .aar
come parte della compilazione: sarà nella directory build/outputs/aar
dopo una compilazione riuscita.
Se il modulo importato come un modulo di app e non una biblioteca (apply plugin: 'com.android.application'
, quindi cambiamento che apply plugin
dichiarazione, e potrebbe anche essere necessario per rimuovere l'istruzione applicationId
dal file di generazione. Ora dovrebbe compilare come una libreria e generare un .aar
.
felice codifica!
fonte
2015-02-20 20:05:37
Grazie. Finora io so che non v'è alcun out-of-the-box soluzione per farlo, ma ancora sto cercando qualche idea su come migrare da 'apklib' a' aar' senza ricompilare manualmente ogni singola libreria (tenendo conto che non sono ancora distribuiti come 'aar'). –