Metodo DSL Gradle non trovato: 'runProguard'


497

Viene visualizzato un errore dopo l'aggiornamento dal mio ultimo progetto. Non è un problema nel mio codice ma ho problemi con build.gradle. Come posso ripararlo?

codice build.gradle qui:

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

Output del messaggio 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
Prova minifyEnabledinvece di runProguard.
CommonsWare il

@CommonsWare funziona per me
phmagic il

Non riesco ancora a credere che questo abbia ottenuto così tanti voti. Rimani aggiornato con le modifiche qui: tools.android.com/tech-docs/new-build-system .
Jared Burrows,

non funziona per me
Dr. aNdRO

Risposte:


819

inserisci qui la descrizione dell'immagineSe si utilizza la versione 0.14.0 o successiva del plug-in gradle, è necessario sostituire "runProguard" con "minifyEnabled" nei file build.gradle.

runProguard è stato rinominato in minifyEnabled nella versione 0.14.0. Per maggiori informazioni, vedi Android Build System


4
La fonte per questo è qui .
Chris Cirefice,

3
ci sono due file build.gradle, quello interno, quello nella sottodirectory dell'app, è quello.
barlop

Errore: (26, 0) Metodo DSL Gradle non trovato: 'classpath ()' Possibili cause: il progetto 'Sample' potrebbe utilizzare una versione di Gradle che non contiene il metodo.
Prasad,

279

Usando 'minifyEnabled'invece di 'runProguard'funziona correttamente.

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

Spero che sia di aiuto.


72

Se si sta eseguendo la migrazione alla 1.0.0 è necessario modificare le seguenti proprietà.

Nel file build.gradle del progetto è necessario sostituire minifyEnabled.

Quindi il tuo nuovo tipo di build dovrebbe essere

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

Assicurati anche che la versione Gradle sia 1.0.0 come

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

nel file build.gradle .

Questo dovrebbe risolvere il problema.

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


17

Modificando runProguard in minifyEnabled , parte del problema viene risolto.

Ma la correzione può causare "I progetti di libreria non possono impostare l'ID applicazione" (puoi trovare la correzione qui Android Studio 1.0 ed errore "I progetti di libreria non possono impostare applicationId" ).

Rimuovendo l'ID applicazione nel file build.gradle, dovresti essere pronto.


Prova a rintracciare la risposta qui e quindi dai il link ad essa.
codebot

Qualcuno avrebbe dovuto dirlo già. Grande! Dopo aver eseguito minifyEnabled , è necessario farlo anche in buld.gradle di tutti i progetti di librerie esterne.
sud007,

0

runProguard è stato rinominato in minifyEnabled nella versione 0.14.0 (2014/10/31) o più in Gradle.

Per risolvere questo problema, devi modificare runProguard in minifyEnabled nel file build.gradle del tuo progetto.

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.