Consegui construir um código-fonte de biblioteca para o .jar
arquivo 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 gradle
pasta 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.gradle
arquivo
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.bat
e gradle
arquivos de novo projeto android no meu raiz do projeto biblioteca. Você deve encontrar seu arquivo de biblioteca compiladomyCompiledLibrary.jar
no build\libs
diretó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 jar
arquivo (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