找不到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,2014年

@CommonsWare为我工作
phmagic 2014年

我仍然无法相信这获得了如此多的赞誉。在此处随时了解最新更改:tools.android.com/tech-docs/new-build-system
Jared Burrows 2015年

对我
不起作用

Answers:


819

在此处输入图片说明如果您使用的版本0.14.0或gradle这个插件的更高,则应更换“runProguard”“minifyEnabled”在你的build.gradle文件。

runProguard更名为minifyEnabled在0.14.0版本。有关更多信息,请参阅Android Build System。


4

3
有两个build.gradle文件,一个是内部文件,一个是app子目录中的文件。
barlop 2015年

错误:(26,0)未找到Gradle DSL方法:“ classpath()”可能的原因:项目“示例”可能正在使用不包含该方法的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,部分问题得以解决。

但是此修复程序可能导致“ Library Projects无法设置应用程序ID”(您可以在此处找到有关此修复程序的Android Studio 1.0和错误“ Library Projects 无法设置applicationId”)。

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


尝试在此处跟踪答案,然后提供链接。
codebot

有人应该已经告诉过。大!完成minifyEnabled之后,还需要在所有外部库项目的buld.gradle中也执行此操作。
sud007

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.