6

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')
        }
    }
}

を実行gradlew cleanするかgradlew build、次のエラーを返します。

> Could not find method buildTypes() for arguments [build_25r1m0a3etn5cudtt5odlegprd$_run_closure2_closure10@5f3306ad] on project

プラグインandroid-libraryにメソッドがないようbuildTypesです。に変更apply pluginするとandroidgradlew正常に実行されます。ただし、これは図書館プロジェクトであり、そのままにしておきたいと思います。私の他の部分gradle.build(ここでは言及されていません) は、ライブラリであるプロジェクトに依存しています。

android-libraryビルド時にプラグインで ProGuard を実行する方法はありますか?

4

1 に答える 1

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'
    }
}

proguardFileの下に別のものを追加したことにも注意してくださいrelease。これにより、最初の問題を解決した後に発生していた別の問題が修正されましたbuildTypes

于 2013-09-30T18:42:23.277 に答える