Mi piacerebbe eseguire ProGuard sulla versione di rilascio della mia libreria Android. Di seguito è il mio file build.gradle
che è all'interno del mio progetto.Come far funzionare runProguard per il plugin Gradle della libreria Android?
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android-library'
repositories {
mavenCentral()
}
android {
compileSdkVersion 18
buildToolsVersion "18.0.1"
defaultConfig {
minSdkVersion 10
targetSdkVersion 18
}
sourceSets {
main {
java {
srcDir 'src/main/java'
}
resources {
srcDir 'src/../lib'
}
}
}
buildTypes {
release {
runProguard true
proguardFile getDefaultProguardFile('proguard-android.txt')
}
}
}
esecuzione gradlew clean
o gradlew build
restituisce il seguente errore:
> Could not find method buildTypes() for arguments [[email protected]d] on project
Sembra che plug android-library
manca il metodo buildTypes
. Se cambio apply plugin
a android
, gradlew
funziona correttamente. Tuttavia, questo è un progetto di biblioteca e vorrei mantenerlo così. Altre parti my my gradle.build
(non menzionato qui) si basano sul fatto che il progetto sia una libreria.
C'è un modo per far funzionare il plugin android-library
su ProGuard?
Penso che l'idea è di eseguire ProGuard una volta per tutto il codice che comprende l'app finale, non per ogni libreria singolarmente. –
Sto creando un jar SDK per la distribuzione. Vorrei che le funzioni pubbliche fossero visibili, ma le variabili e le funzioni private non fossero visibili. – BVB