Я зміг створити вихідний код бібліотеки для скомпільованого .jar
файлу, використовуючи підхід з цього рішення:
https://stackoverflow.com/a/19037807/1002054
Ось розбивка того, що я зробив:
1. Оформити сховище бібліотеки
Можливо, це була бібліотека Воллі
2. Імпорт бібліотеки в Android Studio.
Я використовував Android Studio 0.3.7. На цьому етапі я зіткнувся з деякими проблемами, а саме з тим, що мені довелося скопіювати gradle
папку з нового проекту Android, перш ніж я зміг імпортувати вихідний код бібліотеки Volley, це може відрізнятися залежно від використовуваного вами вихідного коду.
3. Змініть build.gradle
файл
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. Запустіть gradlew makeJar
команду з кореня проекту.
У моєму випадку мені довелося копіювати gradlew.bat
та gradle
файли з нового проекту android у моєму кореневому каталозі бібліотеки. Ви повинні знайти свій скомпільований файл бібліотеки myCompiledLibrary.jar
в build\libs
каталозі.
Сподіваюся, комусь це стане в нагоді.
Редагувати:
Застереження
Хоча це працює, ви зіткнетеся з винятком повторюваних бібліотек під час компіляції проекту з декількома модулями, де більше одного модуля (включаючи модуль програми) залежить від одного і того ж jar
файлу (наприклад, модулі мають власний каталог бібліотеки, на який посилається build.gradle
даний модуль) .
Якщо вам потрібно використовувати одну бібліотеку в більш ніж одному модулі, я б рекомендував використовувати такий підхід:
Android gradle build і бібліотека підтримки