找不到Gradle DSL方法:' runProguard'

时间:2014-11-22 13:44:13

标签: android gradle android-gradle

从我上一个项目更新后出错。我的代码不是问题,但我在build.gradle上遇到了麻烦。我该如何解决?

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消息输出:

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**

5 个答案:

答案 0 :(得分:814)

enter image description here如果您使用的是gradle插件的0.14.0或更高版本,则应将" runProguard" 替换为" minifyEnabled& build.gradle文件中的#34;

在版本0.14.0中,

runProguard 已重命名为 minifyEnabled 。有关详细信息,请See Android Build System

答案 1 :(得分: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'
        }
    }

希望这有帮助。

答案 2 :(得分:72)

如果要迁移到1.0.0,则需要更改以下属性。

在Project&#39> 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

答案 3 :(得分:17)

runProguard 更改为 minifyEnabled ,部分问题得到解决。

但修复可能导致&#34;图书馆项目无法设置应用程序ID&#34; (您可以在此处找到此修复 Android Studio 1.0 and error "Library projects cannot set applicationId" )。

通过删除build.gradle文件中的应用程序ID,你应该好好去。

答案 4 :(得分:0)

runProguard 已在Gradle版本0.14.0(2014/10/31)或更高版本中重命名为 minifyEnabled

要解决此问题,您需要在项目的 build.gradle 文件中将runProguard更改为minifyEnabled。

enter image description here