Ошибка: (26, 0) Gradle Метод DSL не найден: 'runProguard()'

Я использую android studio 0.9.3 с gradle 'com.android.tools.build:gradle:0.14.+'

применить плагин: 'com.android.application'

android {
    compileSdkVersion 19
    buildToolsVersion '20.0.0'

    defaultConfig {
        applicationId "xxx.xxx.xxx"
        minSdkVersion 16
        targetSdkVersion 19
        versionCode 1
        versionName "1.0.11"
    }

    signingConfigs{
        releaseConfig{
            storeFile file("xxxxxxx")
            storePassword = "xxxx"
            keyAlias = "xxxx"
            keyPassword = "xxxx"
        }
    }

    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.releaseConfig

            // adds version to file name
            applicationVariants.all { variant ->
                def file = variant.outputFile
                variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))
            }
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    // You must install or update the Support Repository through the SDK manager to use this dependency.
    // You must install or update the Support Repository through the SDK manager to use this dependency.
    // You must install or update the Google Repository through the SDK manager to use this dependency.
    // You must install or update the Support Repository through the SDK manager to use this dependency.
    compile 'com.android.support:support-v4:19.+'
    compile 'com.android.support:appcompat-v7:19.+'
    compile 'com.mcxiaoke.volley:library:1.0.6'
    compile 'com.google.code.gson:gson:2.2.+'
}

Проект, скомпилированный ранее без изменений в этом файле, Я получаю: Ошибка: (26, 0) gradle Метод DSL не найден: 'runProguard()'

Как это исправить?

Ответ 1

Насколько я знаю, runProguard был заменен на minifyEnabled. Я до сих пор не знаю, как определить конфигурацию для proguard, но поиск Google поможет вам узнать.

Edit:

Для outFile читайте здесь: https://groups.google.com/forum/#!topic/adt-dev/4_-5NvxuFB0, как они это делают.

Вкратце: они использовали более сложную версию:

applicationVariants.all { variant ->

    variant.outputs.each { output ->

        def apk = output.outputFile;
        def newName;

        // newName = apk.name.replace(".apk", "-v" + defaultConfig.versionName + "-" + variant.buildType.name.toUpperCase() + ".apk");
        if (variant.buildType.name == "release") {
            newName = apk.name.replace(".apk", "-v" + defaultConfig.versionName + "-release.apk");
        } else {
            newName = apk.name.replace(".apk", "-v" + defaultConfig.versionName + "-beta.apk");
        }

        output.outputFile = new File(apk.parentFile, newName);

        if (output.zipAlign) {
            output.outputFile = new File(apk.parentFile, newName.replace("-unaligned", ""));
        }

        logger.info('INFO: Set outputFile to ' + output.outputFile + " for [" + output.name + "]");
    }
}

Ответ 2

Вместо использования runProguard в вашем файле gradle попробуйте использовать minifyEnabled. Это должно решить проблему. runProguard устарел и скоро перестанет работать.

ИЗМЕНИТЬ

Чтобы использовать minifyEnabled, gradle следует обновить до версии 2.2 или выше.

Ответ 3

Изменение файла приложения build.gradle может помочь:

старый:

buildTypes {
    release {

        runProguard false // this line has to be changed

        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

новый

buildTypes {
    release {

        minifyEnabled false // new version

        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

Ответ 4

Как и в Gradle 0.14.4, эти ошибки сообщаются как ошибки времени компиляции.

Итак, вы должны заменить runProguard false/true на minifyEnabled false/true

Изменения перечислены в Блог разработчиков Android.

Ответ 5

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

Просто добавьте это.

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

minifyEnabled false Значения типа Build Build не могут быть основными или androidTest (это принудительно применяется плагином) и что они должны быть уникальными друг для друга.

Новая версия плагина Android gradle позволяет автоматически удалять неиспользуемые ресурсы. Большая победа здесь в том, что она удаляет неиспользуемые ресурсы не только из вашего собственного кода, но, что более важно, из библиотек, которые вы используете (например, когда есть ресурсы, которые включены для поддержки функций, которые вы фактически не используете в своем приложении).

Ответ 6

Миграция Gradle Проекты до версии 1.0.0 требуют простой работы по переименованию, здесь описано все: http://tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0

Для proguard вы можете просто переименовать 'runProguard' = > 'minifyEnabled', остальные - ниже:

Renamed Properties in BuildTypes:    
runProguard => minifyEnabled
zipAlign => zipAlignEnabled
jniDebugBuild => jniDebuggable
renderscriptDebug => renderscriptDebuggable

Renamed Properties in ProductFlavors:    
flavorGroups => flavorDimensions
packageName => applicationId
testPackageName => testApplicationId
renderscriptSupportMode => renderscriptSupportModeEnabled
ProductFlavor.renderscriptNdkMode => renderscriptNdkModeEnabled
Other Name changes

InstrumentTest was renamed to androidTest.

Ответ 7

Это связано с обновлением инструментов андроида gradle до 0,14.3. В свой файл "build.gradle" замените

classpath 'com.android.tools.build:gradle:0.14.+'

по:

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

Пока они не исправят это...

Ответ 8

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

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

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