Sono stato in grado di creare un codice sorgente della libreria in un .jarfile compilato , utilizzando l'approccio di questa soluzione:
https://stackoverflow.com/a/19037807/1002054
Ecco la ripartizione di quello che ho fatto:
1. Checkout archivio della libreria
In ogni caso era una biblioteca di Volley
2. Importa libreria in Android Studio.
Ho usato Android Studio 0.3.7. Ho riscontrato alcuni problemi durante quel passaggio, vale a dire ho dovuto copiare la gradlecartella dal nuovo progetto Android prima di poter importare il codice sorgente della libreria Volley, questo può variare a seconda del codice sorgente che utilizzi.
3. Modifica il tuo build.gradlefile
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.3'
}
}
apply plugin: 'android-library'
android {
compileSdkVersion 17
buildToolsVersion = 17
sourceSets {
main {
java {
srcDir 'src'
}
}
}
}
task clearJar(type: Delete) {
delete 'build/libs/myCompiledLibrary.jar'
}
task makeJar(type: Copy) {
from('build/bundles/release/')
into('build/libs/')
include('classes.jar')
rename ('classes.jar', 'myCompiledLibrary.jar')
}
makeJar.dependsOn(clearJar, build)
4. Eseguire il gradlew makeJarcomando dalla radice del progetto.
Nel mio caso ho dovuto copiare gradlew.bate gradlefile dal nuovo progetto Android nella radice del mio progetto di libreria. Dovresti trovare il file della libreria compilata myCompiledLibrary.jarnella build\libsdirectory.
Spero che qualcuno lo trovi utile.
Modificare:
Avvertimento
Sebbene funzioni, incontrerai un'eccezione di libreria duplicata durante la compilazione di un progetto con più moduli, in cui più di un modulo (incluso il modulo dell'applicazione) dipende dallo stesso jarfile (ad es. I moduli hanno la propria directory di libreria, a cui si fa riferimento in un build.gradledato modulo) .
Nel caso in cui sia necessario utilizzare una singola libreria in più di un modulo, ti consiglio di utilizzare questo approccio:
Android gradle build e la libreria di supporto