Nie znaleziono metody Gradle DSL: „runProguard”


497

Otrzymuję błąd po aktualizacji z mojego ostatniego projektu. W moim kodzie nie ma problemu, ale mam problem z build.gradle. Jak mogę to naprawić?

kod build.gradle tutaj:

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

Wyjście komunikatu 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
Spróbuj minifyEnabledzamiast runProguard.
CommonsWare

@CommonsWare działa dla mnie
phmagic

Nadal nie mogę uwierzyć, że zyskało tak wiele pozytywnych opinii. Bądź na bieżąco ze zmianami tutaj: tools.android.com/tech-docs/new-build-system .
Jared Burrows,

nie działa dla mnie
Dr. aNdRO

Odpowiedzi:


819

wprowadź opis zdjęcia tutajJeśli używasz wersji 0.14.0 lub nowszej wtyczki Gradle, należy wymienić „runProguard” z „minifyEnabled” w plikach build.gradle.

RunProguard został przemianowany na minifyEnabled w wersji 0.14.0. Aby uzyskać więcej informacji, zobacz System budowania Androida


4
Źródło tego jest tutaj .
Chris Cirefice,

3
istnieją dwa pliki build.gradle, wewnętrzny, ten w podkatalogu aplikacji, jest tym.
barlop

Błąd: (26, 0) Nie znaleziono metody Gradle DSL: „classpath ()” Możliwe przyczyny: Projekt „Próbka” może używać wersji Gradle, która nie zawiera tej metody.
Prasad

279

Używanie 'minifyEnabled'zamiast 'runProguard'działa poprawnie.

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

Mam nadzieję że to pomoże.


72

Jeśli przeprowadzasz migrację do wersji 1.0.0, musisz zmienić następujące właściwości.

W pliku build.gradle projektu musisz zastąpić minifyEnabled.

Dlatego twój nowy typ kompilacji powinien być

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

Upewnij się także, że wersja gradowa ma wersję 1.0.0

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

w pliku build.gradle .

To powinno rozwiązać problem.

Źródło: http://tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0


17

Zmieniając runProguard na minifyEnabled , część problemu zostaje naprawiona.

Ale poprawka może powodować „Projekty bibliotek nie mogą ustawić identyfikatora aplikacji” (poprawkę można znaleźć tutaj Android Studio 1.0 i błąd „ Projekty bibliotek nie mogą ustawić identyfikatora aplikacji” ).

Usuwając identyfikator aplikacji w pliku build.gradle, powinieneś być gotowy.


Spróbuj prześledzić odpowiedź tutaj, a następnie podaj link do niej.
codebot

Ktoś powinien to już powiedzieć. Świetny! Po wykonaniu minifyEnabled , musisz to zrobić również w buld.gradle wszystkich zewnętrznych projektów bibliotecznych.
sud007

0

Nazwa runProguard została przemianowana na minifyEnabled w wersji 0.14.0 (2014/10/31) lub wyższej w wersji Gradle.

Aby to naprawić, musisz zmienić runProguard na minifyEnabled w build.gradle pliku twojego projektu.

wprowadź opis zdjęcia tutaj

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.