J'ai pu construire une bibliothèque dont le code source a été compilé. .jar
en utilisant l'approche de cette solution : https://stackoverflow.com/a/19037807/1002054
Voici le détail de ce que j'ai fait :
1. Dépôt de la bibliothèque
Dans certains cas, il s'agissait d'une bibliothèque de volley-ball
2. Importer la bibliothèque dans Android Studio.
J'ai utilisé Android Studio 0.3.7. J'ai rencontré quelques problèmes lors de cette étape, notamment j'ai dû copier gradle
du 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.gradle
fichier
// If your module is a library project, this is needed
//to properly recognize 'android-library' plugin
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.3'
}
}
apply plugin: 'android-library'
android {
compileSdkVersion 17
buildToolsVersion = 17
sourceSets {
main {
// Here is the path to your source code
java {
srcDir 'src'
}
}
}
}
// This is the actual solution, as in https://stackoverflow.com/a/19037807/1002054
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écution gradlew makeJar
à partir de votre projet Root.
Dans mon cas, j'ai dû copier gradlew.bat
y gradle
du nouveau projet Android dans ma bibliothèque Root. Vous devriez trouver votre fichier de bibliothèque compilé myCompiledLibrary.jar
en build\libs
répertoire.
J'espère que cela sera utile à quelqu'un.
Editer :
Mise en garde
Bien que cela fonctionne, vous rencontrerez une exception de bibliothèque dupliquée lors de la compilation d'un projet avec plusieurs modules, où plusieurs modules (y compris le module d'application) dépendent de la même bibliothèque. jar
(par exemple, les modules ont leur propre répertoire de bibliothèques, qui est référencé dans le fichier build.gradle
d'un module donné).
Dans le cas où vous devez utiliser une seule bibliothèque dans plusieurs modules, je vous recommande d'utiliser cette approche : Android gradle build et la bibliothèque de support