问题
I'm trying to generate a library with minifyEnabled true but, inside the release .aar, classes.jar is getting empty.
I have checked my proguard-rules.pro and it seems to be all right.
I've even created a new module with the default .gradle files and when i set minifyEnable true the release version still gets the classes.jar with no class inside.
After all, is it possible to generate an android library obfuscating the code?
EDIT 1: Adding module build.gradle
apply plugin: 'com.android.library'
android {
compileSdkVersion 27
buildToolsVersion '27.0.0'
defaultConfig {
minSdkVersion 15
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
abortOnError false
}
}
repositories {
maven { url 'https://maven.google.com' }
jcenter()
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:3.0.1', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'org.apache.httpcomponents:httpcore:4.3.3'
compile('org.apache.httpcomponents:httpmime:4.3.6') {
exclude module: 'httpclient'
}
compile 'fr.bmartel:jspeedtest:1.25'
compile "com.android.support:appcompat-v7:27.0.0"
testCompile 'junit:junit:4.12'
}
回答1:
Ok, after some time I solved my problem.
I copy/paste a default proguard rules configuration (library.pro) to my proguard-rules.pro. You can find this file and more examples in path-to-your-sdk/tools/proguard/examples.
For more information, read this.
In my build.gradle I chagend:
defaultConfig {
minSdkVersion 15
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
to:
defaultConfig {
minSdkVersion 14
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
consumerProguardFiles 'proguard-rules.pro' //added this line
}
}
Thanks for the help!
来源:https://stackoverflow.com/questions/47652924/android-library-release-aar-getting-classes-jar-empty-when-using-proguard