Gradle DSL method not found: 'runProguard'
Asked Answered
R

6

505

I get an error after updating from my last project. Not a problem in my code but I'm having trouble with build.gradle. How can I fix it?

build.gradle code here:

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 message output:

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**
Rebellious answered 22/11, 2014 at 13:44 Comment(3)
Try minifyEnabled instead of runProguard.Pertinent
I still cannot believe this got so many upvotes. Stay up to date with the changes here: tools.android.com/tech-docs/new-build-system.Electrolytic
not working for meAlginate
M
821

enter image description hereIf you are using version 0.14.0 or higher of the gradle plugin, you should replace "runProguard" with "minifyEnabled" in your build.gradle files.

runProguard was renamed to minifyEnabled in version 0.14.0. For more info, See Android Build System

Monikamoniker answered 24/11, 2014 at 14:44 Comment(3)
The source for this is here.Negative
there are two build.gradle files, the inner one , the one in the app subdirectory, is the one.Daimyo
Error:(26, 0) Gradle DSL method not found: 'classpath()' Possible causes: The project 'Sample' may be using a version of Gradle that does not contain the method.Laforge
P
281

Using 'minifyEnabled' instead of 'runProguard' works properly.

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'
        }
    }
Provincialism answered 3/12, 2014 at 7:54 Comment(0)
C
72

If you are migrating to 1.0.0 you need to change the following properties.

In the Project's build.gradle file you need to replace minifyEnabled.

Hence your new build type should be

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

Also make sure that gradle version is 1.0.0 like

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

in the build.gradle file.

This should solve the problem.

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

Carrie answered 9/12, 2014 at 6:58 Comment(0)
S
17

By changing runProguard to minifyEnabled, part of the issue gets fixed.

But the fix can cause "Library Projects cannot set application Id" (you can find the fix for this here Android Studio 1.0 and error "Library projects cannot set applicationId").

By removing application Id in the build.gradle file, you should be good to go.

Satisfaction answered 5/2, 2015 at 15:59 Comment(2)
Try to trace the answer here and then give the link to it.Disenfranchise
Somebody should have told that already. Great! After doing minifyEnabled, need to do this as well in buld.gradle of all the external library projects as well.Anallese
S
0

runProguard has been renamed to minifyEnabled in version 0.14.0 (2014/10/31) or more in Gradle.

To fix this, you need to change runProguard to minifyEnabled in the build.gradle file of your project.

enter image description here

Stone answered 22/5, 2016 at 8:11 Comment(0)
A
0

This is for Kotlin DSL (build.gradle.kts):

buildTypes {
    getByName("release") { // or simply  release {  in newer versions of Android Gradle Plugin (AGP)
      isMinifyEnabled = true
      isShrinkResources = true
      proguardFiles(
        // "proguard-android-optimize.txt" reduces size more than "proguard-android.txt"
        getDefaultProguardFile("proguard-android-optimize.txt"),
        "proguard-rules.pro"
      )
      signingConfig = signingConfigs.getByName("mySigningConfig")
    }
}

I'm using Android Gradle Plugin (AGP) version 7 in my top-level build file:

buildscript {
  // ...
  dependencies {
      classpath("com.android.tools.build:gradle:7.0.4")
      // ...
  }
}
Azaleeazan answered 25/1, 2022 at 14:27 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.