您的位置:首页 > 其它

Gradle DSL method not found: 'runProguard()' 问题的引发与解决

2015-07-20 15:17 197 查看
将Android Studio升级至1.0之后,运行旧项目时可能会出现以下问题:

Gradle DSL method not found: 'runProguard()'

从字面就能看出来,出现这个问题的原因是找不到runProguard()这个方法了(调用这个方法的地方在每个Module对应的build.gradle文件中)。

这是因为,当Android Studio升级时,也自动的将项目下的build.gradle文件(不是Module对应的build.gradle!)下的内容修改成了:

1
dependencies
{
2
classpath
'com.android.tools.build:gradle:1.0.0'
3
4
//
NOTE: Do not place your application dependencies here; they belong
5
//
in the individual module build.gradle files
6
}
而升级之前是这样的(以我的电脑为例,应该是类似的):

1
dependencies
{
2
classpath
'com.android.tools.build:gradle:0.13.2'
3
4
//
NOTE: Do not place your application dependencies here; they belong
5
//
in the individual module build.gradle files
6
}
显然,最简单的解决方法是将Gradle的版本改回去,此方法可能的确有效。但是,这种做法显然不是最好的方法。查阅官方文档之后(http://tools.android.com/tech-docs/new-build-system)之后发现,在新版本的gradle中,runProguard这个方法已经废弃了,并且改为新的方法了:minifyEnabled.
因此,正确的解决方法不是修改gradle的版本号,而是将项目中每个Module对应的build.gradle文件中的runProguard方法名改为minifyEnabled,即:

1
buildTypes
{
2
release
{
3
minifyEnabled
false
4
proguardFiles
getDefaultProguardFile(
'proguard-android.txt'
),
'proguard-rules.pro'
5
}
6
debug
{
7
applicationIdSuffix
'.debug'
8
}
9
}
问题就可以解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: