我想在我的安卓库的发布版本上运行ProGuard。下面是我的项目中的build.gradle文件。
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')
}
}
}运行gradlew clean或gradlew build将返回以下错误:
> Could not find method buildTypes() for arguments [build_25r1m0a3etn5cudtt5odlegprd$_run_closure2_closure10@5f3306ad] on project
插件android-library似乎缺少了buildTypes方法。如果我将apply plugin更改为android,则gradlew将成功运行。然而,这是一个图书馆项目,我想保留它。其他部分--我的gradle.build (这里没有提到)--依赖于项目是一个库。
有没有办法让android-library插件在构建时运行ProGuard?
发布于 2013-09-30 18:42:23
解决了我的问题,将release从buildTypes中删除,如下所示:
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'
}
}
}
release {
runProguard true
proguardFile getDefaultProguardFile('proguard-android.txt')
proguardFile 'proguard-android.txt'
}
}还请注意,我在release下添加了另一个release。这解决了我在解决最初的buildTypes问题后遇到的另一个问题。
https://stackoverflow.com/questions/19100776
复制相似问题