如何让runProguard为android-library Gradle插件工作?

BVB*_*BVB 6 android proguard gradle android-library android-gradle-plugin

我想在我的Android库的发布版本上运行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')
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

运行gradlew cleangradlew 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?

BVB*_*BVB 2

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'
    }
}
Run Code Online (Sandbox Code Playgroud)

另请注意,我proguardFile在 下添加了另一个release。这解决了我在解决最初的问题后遇到的另一个问题buildTypes