Android Studio:Gradle DSL method not found: 'runProguard()'

Android Studio发布了新的1.0版,更新之后却发现原来在0.8下面正常的项目编译失败了,从报错上来看是卡在gradle上面。

Gradle DSL method not found: 'runProguard()'

找不到 runProguard() 这个方法

最终的原因很让人无语,原来gradle的工程师跟谷歌负责安卓这一块的是一个尿性!!根本就不管上下版本的开发兼容性!!

 

Android Studio 1.0 默认采用了新版本的gradle,升级时,也会自动的将项目下的build.gradle文件下的内容修改成了:

dependencies {

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

// NOTE: Do not place your application dependencies here; they belong

// in the individual module build.gradle files

}


而升级之前用的gradle版本应该是0.12.2,所以之前应该是这样的:

dependencies {

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

// NOTE: Do not place your application dependencies here; they belong

// in the individual module build.gradle files

}


如果你的电脑中还有老版本的gradle在的话,把版本号改回去就能跟原来一样正常编译了,但是这种做法显然不是最好的方法。

这个问题的最终解是,在新版本的gradle中,runProguard() 这个方法已经废弃并且改为了新的方法: minifyEnabled()。因此,正确的解决方法不是修改gradle的版本号,而是将项目中每个Module对应的build.gradle文件中的runProguard方法名改为 minifyEnabled(),即:  

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

 

posted @ 2014-12-13 10:58  辰帆  阅读(665)  评论(0编辑  收藏  举报