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' } }
Do Cool Things That Matter!