I am writing an android SDK. I am using gradle and android studio.
Legend:
- X.jar - a 3rd party jar file.
- Y.jar - my final android SDK jar file, dependence on X.jar.
- someApp - an Android app that uses/dependence on Y.jar.
The Problem:
someApp can not recognize classes in X.jar
I've searched (for almost a day) ways to generate Y.jar with also classes of X.jar (instead of just including X.jar file inside) but unfortunately I've failed. Many solutions I found were not clear enough or didn't fit my case.
I would very much appreciate your help and guidance.
Here is my relevant code snippet (based on this answer):
build.gradle code of my SDK project - creating Y.jar:
apply plugin: 'com.android.library'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 18
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main {
java {
srcDir 'src/main/java'
}
resources {
srcDir 'src/../libs'
}
}
}
}
dependencies {
compile 'com.android.support:appcompat-v7:21.0.3'
compile files('libs/X.jar')
}
task clearJar(type: Delete) {
delete 'build/outputs/Y.jar'
}
task makeJar(type: Copy) {
from('build/intermediates/bundles/release/')
into('build/outputs/')
include('classes.jar')
rename ('classes.jar', 'Y.jar')
}
makeJar.dependsOn(clearJar, build)
running 'gradlew makeJar' generates Y.jar in build/outputs directory.