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!)下的内容修改成了:
而升级之前是这样的(以我的电脑为例,应该是类似的):
显然,最简单的解决方法是将Gradle的版本改回去,此方法可能的确有效。但是,这种做法显然不是最好的方法。查阅官方文档之后(http://tools.android.com/tech-docs/new-build-system)之后发现,在新版本的gradle中,runProguard这个方法已经废弃了,并且改为新的方法了:minifyEnabled.
因此,正确的解决方法不是修改gradle的版本号,而是将项目中每个Module对应的build.gradle文件中的runProguard方法名改为minifyEnabled,即:
问题就可以解决。
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的版本号,而是将项目中每个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 | } |
相关文章推荐
- 四元数介绍
- java.io.IOException: setDataSource failed.: status=0x80000000问题的解决
- Digging dp
- 敏捷开发中高质量 Java 代码开发实践
- 查看动态组成员/通讯组
- 敏捷开发中高质量 Java 代码开发实践
- JFinal使用笔记1-部署demo项目到本地tomcat
- 将Lua嵌入IOS程序
- 上传文件
- 【SpringMVC框架】springmvc入门程序-环境搭建
- Google Chrome浏览器插件“时空隧道”的使用
- 聊聊高并发(四十二)解析java.util.concurrent各个组件(十八) 任务的批量执行和CompletionService
- IE8 下处理select标签高度不居中
- 抓取网贷之家的数据爬虫
- linux vim 常用操作
- minidump详细介绍及其windbg的使用
- 虚拟机IP配置
- Python的Django框架中自定义模版标签的示例
- sql server 删除所有表、视图、存储过程
- NSUserDefault 存储自定义对象