尽管回答得很晚,但这对Google来说很难(单引号),目前还不清楚发生了什么。我尚无评论或要求范围的信誉(或发布3个链接),因此此答案可能有点乏味。
为了快速回答,您的项目中可能有多个Gradle插件。
同步Gradle包装器和插件
我的问题似乎始于损坏的IML文件。Android Studio(在关闭和重新打开项目之间)开始抱怨IML消失了(不是),应该删除一个模块,但我拒绝了。它持续存在,我升级到AS 0.8.7(canary频道),并陷入OP问题(在根项目中找不到“任务”)。这完全阻塞了构建,因此我不得不深入研究Gradle。
我在OSX上的维修步骤(请针对Windows进行调整):
- 将Android Studio升级到0.8.7
- 首选项| 更新| 将“测试版频道”切换为“金丝雀频道”,然后立即进行检查。
- 您可能可以跳过此操作。
检查了Gradle包装器(当前为1.12.2;此时请勿尝试使用2.0)。
例如,在build.gradle中,您具有以下插件:
dependencies {
classpath "com.android.tools.build:gradle:0.12.+"
}
您可以尝试将其切换为确切的版本,如下所示:
dependencies {
classpath "com.android.tools.build:gradle:0.12.2"
}
并且(在记录每种情况下要更改的版本之后),验证项目中的每个build.gradle文件都插入相同的插件版本。保持“ +”应该有效(对于0.12.0、0.12.1、0.12.2等),但是当我更新Google的Volley库(最初为gradle:0.8。+)和我的主项目(最初为0.12)时,构建成功。 +)的固定版本:gradle:0.12.2。
其他检查
确保您在同一项目中没有两个Android应用程序模块
这可能会与最终解决方案(上述不同的Gradle版本)互动,并导致
UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define (various classes)
要检查,请构建| Make Project不应弹出询问您要制作什么应用程序的窗口。
- 使您的缓存无效
- 档案| 使缓存无效/重新启动(stackoverflow.com/a/19223269/513413)
- 如果第2步不起作用,请删除〜/ .gradle /(www.wuttech.com/index.php/tag/groovy-lang-closure/)
- 退出Android Studio
- $ rm -rf〜/ .gradle /
- 启动Android Studio,然后同步:
- 工具| Android | 与Gradle文件同步项目
- 放弃之前,重复此整个序列几次(退出...同步)。
- 清理项目
如果看到这个...
在最近的构建中,我一直看到可怕的失败(异常页面),但是在几秒钟内,消息就会清除,构建成功并部署了应用程序。由于我永远无法解释它并且该应用程序正常运行,因此我从未注意到我的项目中有两个Gradle插件。因此,我认为Gradle插件相互竞争;一个崩溃了,另一个崩溃了,并报告了错误。
如果您有时间,那么长达1小时的视频“ Gradle的温和介绍”(www.youtube.com/watch?v=OFUEb7pLLXw)确实帮助我了解了Gradle的构建文件,任务,构建决策等。
免责声明
在从事不同的职业之后,我正在异国他乡的操作系统上学习整个堆栈……都是同时在压力下进行的。在过去的几个月中,我碰到了我认为Android遇到的每堵墙。我经常来过这里,这是我的第一篇文章。我以为这很难解决,所以如果答案的质量反映出我在获取答案时遇到的困难,我深表歉意。