找不到Gradle DSL方法:'runProguard'

aba*_*aci 494 android gradle android-gradle-plugin

从我上一个项目更新后出现错误.我的代码不是问题,但我在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'
}
Run Code Online (Sandbox Code Playgroud)

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**
Run Code Online (Sandbox Code Playgroud)

Bab*_*emi 817

在此输入图像描述如果您使用的版本0.14.0或gradle这个插件的更高,则应更换"runProguard""minifyEnabled"在你的build.gradle文件.

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

  • 其来源是[这里](http://tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0). (4认同)
  • 有两个build.gradle文件,内部文件,app子目录中的文件是一个. (3认同)

ami*_*715 279

使用'minifyEnabled'而不是'runProguard'正常工作.

Previous code:

buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
Run Code Online (Sandbox Code Playgroud)

Current code:

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.


Bha*_*eri 72

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

在Project的build.gradle文件中,您需要替换minifyEnabled.

因此,您的新构建类型应该是

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'        
    }
}
Run Code Online (Sandbox Code Playgroud)

还要确保gradle版本是1.0.0之类的

classpath 'com.android.tools.build:gradle:1.0.0'
Run Code Online (Sandbox Code Playgroud)

build.gradle文件中.

这应该可以解决问题.

资料来源:http: //tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0


小智 17

通过将runProguard更改为minifyEnabled,可以解决部分问题.

但修复可能导致"库项目无法设置应用程序ID"(您可以在此处找到Android Studio 1.0的修复程序,并且错误"库项目无法设置applicationId").

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