Pude crear un código fuente de biblioteca para un .jararchivo compilado , utilizando el enfoque de esta solución:
https://stackoverflow.com/a/19037807/1002054
Aquí está el desglose de lo que hice:
1. Repositorio de la biblioteca de Checkout
En caso de que fuera una biblioteca de Volley
2. Importar biblioteca en Android Studio.
Usé Android Studio 0.3.7. Encontré algunos problemas durante ese paso, es decir, tuve que copiar la gradlecarpeta del nuevo proyecto de Android antes de poder importar el código fuente de la biblioteca Volley, esto puede variar según el código fuente que use.
3. Modifica tu build.gradlearchivo
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. Ejecute el gradlew makeJarcomando desde la raíz de su proyecto.
Yo mi caso tuve que copiar gradlew.baty gradlearchivos de nuevo proyecto androide en mi raíz del proyecto de la biblioteca. Debería encontrar su archivo de biblioteca compilado myCompiledLibrary.jaren el build\libsdirectorio.
Espero que alguien lo encuentre útil.
Editar:
Consideración
Aunque esto funciona, encontrará una excepción de biblioteca duplicada al compilar un proyecto con varios módulos, donde más de un módulo (incluido el módulo de aplicación) depende del mismo jararchivo (por ejemplo, los módulos tienen su propio directorio de biblioteca, al que se hace referencia en build.gradleun módulo dado) .
En caso de que necesite usar una biblioteca única en más de un módulo, recomendaría usar este enfoque:
compilación de Android gradle y la biblioteca de soporte