Método DSL Gradle não encontrado: 'runProguard'

497

Recebo um erro após a atualização do meu último projeto. Não é um problema no meu código, mas estou tendo problemas com o build.gradle. Como posso corrigir isso?

código build.gradle aqui:

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

Saída da mensagem 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
fonte
132
Tente em minifyEnabledvez de runProguard.
CommonsWare
@CommonsWare funciona para mim
phmagic
Ainda não consigo acreditar que isso tenha recebido tantos votos positivos. Mantenha-se atualizado com as alterações aqui: tools.android.com/tech-docs/new-build-system .
Jared Burrows
não funciona para mim
Dr. Andro

Respostas:

819

insira a descrição da imagem aquiSe você estiver usando a versão 0.14.0 ou superior do plug-in gradle, substitua "runProguard" por "minifyEnabled" nos arquivos build.gradle.

runProguard foi renomeado para minifyEnabled na versão 0.14.0. Para mais informações, consulte Android Build System

Babatunde Adeyemi
fonte
4
A fonte para isso está aqui .
Chris Cirefice
3
existem dois arquivos build.gradle, o interno, o subdiretório do aplicativo e o único.
barlop
Erro: (26, 0) Método DSL Gradle não encontrado: 'classpath ()' Possíveis causas: O projeto 'Sample' pode estar usando uma versão do Gradle que não contém o método.
Prasad
279

Usar em 'minifyEnabled'vez de 'runProguard'funciona corretamente.

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 isto ajude.

amitabha2715
fonte
72

Se você estiver migrando para a 1.0.0, precisará alterar as seguintes propriedades.

No arquivo build.gradle do projeto, você precisa substituir minifyEnabled.

Portanto, seu novo tipo de construção deve ser

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

Verifique também se a versão gradle é 1.0.0, como

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

no arquivo build.gradle .

Isso deve resolver o problema.

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

Bhargav Jhaveri
fonte
17

Alterando runProguard para minifyEnabled , parte do problema é corrigida.

Mas a correção pode causar "Os projetos da biblioteca não podem definir o ID do aplicativo" (você pode encontrar a correção para isso aqui no Android Studio 1.0 e o erro "Os projetos da biblioteca não podem definir o applicationId" ).

Ao remover o ID do aplicativo no arquivo build.gradle, você deve estar pronto.

Sandeep Kumar
fonte
Tente rastrear a resposta aqui e dê o link para ela.
Codebot
Alguém já deveria ter dito isso. Ótimo! Depois de executar o minifyEnabled , também é necessário fazer isso no buld.gradle de todos os projetos de bibliotecas externas.
sud007
0

O runProguard foi renomeado para minifyEnabled na versão 0.14.0 (31/10/2014) ou mais no Gradle.

Para corrigir isso, você precisa alterar runProguard para minifyEnabled no arquivo build.gradle do seu projeto.

insira a descrição da imagem aqui

Biswajit Karmakar
fonte