Метод Gradle DSL не найден: 'runProguard'


497

Я получаю ошибку после обновления из моего последнего проекта. Не проблема в моем коде, но у меня проблемы с build.gradle. Как я могу это исправить?

код build.gradle здесь:

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

Вывод сообщения 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
Попробуй minifyEnabledвместо runProguard.
CommonsWare

@CommonsWare работает для меня
phmagic

Я до сих пор не могу поверить, что так много голосов. Будьте в курсе изменений здесь: tools.android.com/tech-docs/new-build-system .
Джаред Берроуз,

не работает для меня
доктор АНДРО

Ответы:


819

введите описание изображения здесьЕсли вы используете плагин Gradle версии 0.14.0 или выше, вы должны заменить «runProguard» на «minifyEnabled» в файлах build.gradle.

runProguard был переименован в minifyEnabled в версии 0.14.0. Для получения дополнительной информации, см. Android Build System


4
Источник для этого здесь .
Крис Сирфице

3
Есть два файла build.gradle, один из которых находится в подкаталоге приложения.
Бароп

Ошибка: (26, 0) Метод Gradle DSL не найден: 'classpath ()' Возможные причины: в проекте 'Sample' может использоваться версия Gradle, которая не содержит метод.
Прасад

279

Использование 'minifyEnabled'вместо 'runProguard'работает правильно.

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

Надеюсь это поможет.


72

Если вы переходите на 1.0.0, вам нужно изменить следующие свойства.

В файле build.gradle проекта вам нужно заменить minifyEnabled.

Следовательно, ваш новый тип сборки должен быть

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

Также убедитесь, что версия Gradle 1.0.0, как

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

в файле build.gradle .

Это должно решить проблему.

Источник: http://tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0


17

Изменяя runProguard на minifyEnabled , часть проблемы исправляется.

Но исправление может вызвать «Библиотечные проекты не могут установить идентификатор приложения» (вы можете найти исправление для этого здесь, Android Studio 1.0 и ошибку «Библиотечные проекты не могут установить applicationId» ).

Удалив идентификатор приложения из файла build.gradle, вы должны быть в порядке.


Попробуйте найти ответ здесь, а затем дайте ссылку на него.
Codebot

Кто-то должен был сказать это уже. Большой! После выполнения minifyEnabled , необходимо также сделать это в buld.gradle всех проектов внешних библиотек.
sud007

0

runProguard был переименован в minifyEnabled в версии 0.14.0 (2014/10/31) или более поздней версии в Gradle.

Чтобы это исправить, вам нужно изменить runProguard на minifyEnabled в файле build.gradle вашего проекта.

введите описание изображения здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.