首页 文章

找不到Gradle DSL方法:'runProguard'

提问于
浏览
484

从我上一个项目更新后出现错误 . 我的代码不是问题,但我在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**

5 回答

  • 278

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

    在Project的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

  • 71

    如果您使用的是gradle插件的0.14.0或更高版本,则应在build.gradle文件中将"runProguard"替换为"minifyEnabled" .

    runProguard在版本0.14.0中重命名为minifyEnabled . 欲了解更多信息,See Android Build System

  • 17

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

    希望这可以帮助 .

  • 814

    通过将 runProguard 更改为 minifyEnabled ,问题的一部分得到修复 .

    但修复可能会导致"Library Projects cannot set application Id"(你可以在这里找到解决方法 Android Studio 1.0 and error "Library projects cannot set applicationId" ) .

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

  • 1

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

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

相关问题