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
        }
    }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。