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**

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


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.


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


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.


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í

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.