Método DSL Gradle no encontrado: 'runProguard'

497

Recibo un error después de actualizar desde mi último proyecto. No es un problema en mi código, pero tengo problemas con build.gradle. ¿Cómo puedo arreglarlo?

Código build.gradle aquí:

apply plugin: 'android'

android {
    compileSdkVersion 21
    buildToolsVersion '20.0.0'

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/ASL2.0'
    }

    defaultConfig {
        applicationId 'com.xxx.axxx'
        minSdkVersion 14
        targetSdkVersion 19
        versionCode 6
        versionName '1.0'
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19.+'
    compile files('libs/commons-codec-1.8.jar')
    compile files('libs/asmack-android-8-4.0.4.jar')
    compile 'com.android.support:support-v4:21.0.0'
    compile 'com.google.code.gson:gson:2.2.4'
    compile 'com.jakewharton:butterknife:5.1.1'
}

Salida del mensaje Gradle Sync:

Error:(27, 0) Gradle DSL method not found: 'runProguard()'
**Possible causes:
The project 'Atomic4Mobile' may be using a version of Gradle that does not contain the method.
**Gradle settings**
The build file may be missing a Gradle plugin.
**Apply Gradle plugin**
abaci
fuente
132
Intenta en minifyEnabledlugar de runProguard.
CommonsWare
@CommonsWare funciona para mí
phmagic
Todavía no puedo creer que esto haya recibido tantos votos positivos. Manténgase al día con los cambios aquí: tools.android.com/tech-docs/new-build-system .
Jared Burrows
no funciona para mí
Dr. aNdRO

Respuestas:

819

ingrese la descripción de la imagen aquíSi está utilizando la versión 0.14.0 o superior del complemento gradle, debe reemplazar "runProguard" con "minifyEnabled" en sus archivos build.gradle.

runProguard fue renombrado para minifyEnabled en la versión 0.14.0. Para obtener más información, consulte Sistema de compilación de Android

Babatunde Adeyemi
fuente
44
La fuente de esto está aquí .
Chris Cirefice
3
hay dos archivos build.gradle, el interno, el que está en el subdirectorio de la aplicación, es el único.
barlop
Error: (26, 0) Método DSL Gradle no encontrado: 'classpath ()' Posibles causas: El proyecto 'Muestra' puede estar utilizando una versión de Gradle que no contiene el método.
Prasad
279

Usar en 'minifyEnabled'lugar de 'runProguard'funciona correctamente.

Previous code:

buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

Current code:

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

Espero que esto ayude.

amitabha2715
fuente
72

Si está migrando a 1.0.0, debe cambiar las siguientes propiedades.

En el archivo build.gradle del proyecto, debe reemplazar minifyEnabled.

Por lo tanto, su nuevo tipo de compilación debería ser

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'        
    }
}

También asegúrese de que la versión de Gradle sea 1.0.0 como

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

en el archivo build.gradle .

Esto deberia resolver el problema.

Fuente: http://tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0

Bhargav Jhaveri
fuente
17

Al cambiar runProguard a minifyEnabled , parte del problema se soluciona.

Pero la solución puede causar "Los proyectos de la biblioteca no pueden establecer el ID de la aplicación" (puede encontrar la solución para esto aquí Android Studio 1.0 y el error "Los proyectos de la biblioteca no pueden establecer el ID de la aplicación" ).

Al eliminar el ID de la aplicación en el archivo build.gradle, debería estar listo.

Sandeep Kumar
fuente
Intenta rastrear la respuesta aquí y luego dale el enlace.
codebot
Alguien ya debería haber dicho eso. ¡Excelente! Después de hacer minifyEnabled , también debe hacer esto en buld.gradle de todos los proyectos de biblioteca externa.
sud007
0

runProguard ha cambiado de nombre a minifyEnabled en la versión 0.14.0 (31/10/2014) o más en Gradle.

Para solucionar esto, debe cambiar runProguard para minifyEnabled en el archivo build.gradle de su proyecto.

ingrese la descripción de la imagen aquí

Biswajit Karmakar
fuente