Ошибка: (26, 0 ) метод DSL Gradle не найден: " runProguard () '

? NickF @ | Original: StackOverFlow
---

Я использую андроид студию 0.9.3 с Gradle 'com.android.tools.build:gradle:0.14.+'

применять плагин : " com.android.application "

android {
    compileSdkVersion 19
    buildToolsVersion '20.0.0'

    defaultConfig {
        applicationId "xxx.xxx.xxx"
        minSdkVersion 16
        targetSdkVersion 19
        versionCode 1
        versionName "1.0.11"
    }

    signingConfigs{
        releaseConfig{
            storeFile file("xxxxxxx")
            storePassword = "xxxx"
            keyAlias = "xxxx"
            keyPassword = "xxxx"
        }
    }

    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.releaseConfig

            // adds version to file name
            applicationVariants.all { variant ->
                def file = variant.outputFile
                variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))
            }
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    // You must install or update the Support Repository through the SDK manager to use this dependency.
    // You must install or update the Support Repository through the SDK manager to use this dependency.
    // You must install or update the Google Repository through the SDK manager to use this dependency.
    // You must install or update the Support Repository through the SDK manager to use this dependency.
    compile 'com.android.support:support-v4:19.+'
    compile 'com.android.support:appcompat-v7:19.+'
    compile 'com.mcxiaoke.volley:library:1.0.6'
    compile 'com.google.code.gson:gson:2.2.+'
}

Проект составлен раньше, без каких-либо изменений в этом файле , Я получаю : Ошибка: (26, 0 ) метод DSL Gradle не найден: " runProguard () '

Как это исправить ?

---

Top 5 ответ

1WarrenFaith @

Насколько я знаю, runProguard был заменен на minifyEnabled . Я до сих пор не знаю, как определить конфигурации для ProGuard нопоиск Google должно помочь вам узнать.

Edit:

ДляoutFile прочитать здесь: https://groups.google.com/forum/#!topic/adt-dev/4_-5NvxuFB0, как они это делают.

Короче говоря : они использовали более сложный вариант :

applicationVariants.all { variant ->

    variant.outputs.each { output ->

        def apk = output.outputFile;
        def newName;

        // newName = apk.name.replace(".apk", "-v" + defaultConfig.versionName + "-" + variant.buildType.name.toUpperCase() + ".apk");
        if (variant.buildType.name == "release") {
            newName = apk.name.replace(".apk", "-v" + defaultConfig.versionName + "-release.apk");
        } else {
            newName = apk.name.replace(".apk", "-v" + defaultConfig.versionName + "-beta.apk");
        }

        output.outputFile = new File(apk.parentFile, newName);

        if (output.zipAlign) {
            output.outputFile = new File(apk.parentFile, newName.replace("-unaligned", ""));
        }

        logger.info('INFO: Set outputFile to ' + output.outputFile + " for [" + output.name + "]");
    }
}
2stankocken @

Это связано с обновлением Gradle андроид инструменты, чтобы 0.14.3 . В файле " build.gradle " заменить

classpath 'com.android.tools.build:gradle:0.14.+'

by:

classpath 'com.android.tools.build:gradle:0.14.2'

Пока они не исправить ...

3Varundroid @

Вместо того чтобы использовать runProguard в Gradle файла, попробуйте использовать minifyEnabled . Это должно решить проблему. runProguard Устарела и скоро будет перестать работать.

EDIT

Для использования minifyEnabled, Gradle должны быть обновлены до версии 2.2 или выше.

4sandalone @

По состоянию на Gradle 0.14.4, эти ошибки будут, как ошибки во время компиляции .

Таким образом, вы должны заменить runProguard false/true с minifyEnabled false/true

Изменения перечислены на http://tools.android.com/tech-docs/new-build-system .

5ruan65 @

Изменения в файле build.gradle приложения могут помочь:

old:

buildTypes {
    release {

        runProguard false // this line has to be changed

        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

new:

buildTypes {
    release {

        minifyEnabled false // new version

        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}