Consegui construir um código-fonte de biblioteca para o .jararquivo compilado , usando a abordagem desta solução:
https://stackoverflow.com/a/19037807/1002054
Aqui está o detalhamento do que eu fiz:
1. Fazer check-out do repositório da biblioteca
Em maio, era uma biblioteca de Volley
2. Importar biblioteca no Android Studio.
Usei o Android Studio 0.3.7. Eu encontrei alguns problemas durante essa etapa, ou seja, tive que copiar a gradlepasta do novo projeto Android antes de poder importar o código-fonte da biblioteca Volley. Isso pode variar dependendo do código-fonte que você usa.
3. Modifique seu build.gradlearquivo
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. Corra gradlew makeJar comando a partir da raiz do projeto.
I meu caso eu tive que copiar gradlew.bate gradlearquivos de novo projeto android no meu raiz do projeto biblioteca. Você deve encontrar seu arquivo de biblioteca compiladomyCompiledLibrary.jar no build\libsdiretório.
Espero que alguém ache isso útil.
Editar:
Embargo
Embora isso funcione, você encontrará exceção de biblioteca duplicada ao compilar um projeto com vários módulos, onde mais de um módulo (incluindo o módulo de aplicativo) depende do mesmo jararquivo (por exemplo, os módulos têm o próprio diretório de biblioteca, que é referenciado embuild.gradle determinado módulo) .
No caso de você precisar usar uma única biblioteca em mais de um módulo, eu recomendaria usar esta abordagem:
Android gradle build e a biblioteca de suporte