J'ai pu créer un code source de bibliothèque dans un .jarfichier compilé , en utilisant l'approche de cette solution:
https://stackoverflow.com/a/19037807/1002054
Voici le détail de ce que j'ai fait:
1. Archiver le référentiel de la bibliothèque
En mai, c'était une bibliothèque Volley
2. Importez la bibliothèque dans Android Studio.
J'ai utilisé Android Studio 0.3.7. J'ai rencontré des problèmes au cours de cette étape, à savoir que j'ai dû copier le gradledossier d'un nouveau projet Android avant de pouvoir importer le code source de la bibliothèque Volley, cela peut varier en fonction du code source que vous utilisez.
3. Modifiez votre build.gradlefichier
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. Exécutez la gradlew makeJarcommande à partir de la racine de votre projet.
Dans mon cas, je devais copier gradlew.batet les gradlefichiers du nouveau projet Android dans la racine de mon projet de bibliothèque. Vous devriez trouver votre fichier de bibliothèque compilé myCompiledLibrary.jardans le build\libsrépertoire.
J'espère que quelqu'un trouvera cela utile.
Éditer:
Caveat
Bien que cela fonctionne, vous rencontrerez une exception de bibliothèque en double lors de la compilation d'un projet avec plusieurs modules, où plus d'un module (y compris le module d'application) dépend du même jarfichier (par exemple, les modules ont leur propre répertoire de bibliothèque, qui est référencé dans build.gradleun module donné) .
Au cas où vous auriez besoin d'utiliser une seule bibliothèque dans plus d'un module, je recommanderais d'utiliser cette approche:
Android gradle build et la bibliothèque de support