Android Studio 构建失败,因为 "Task ' ' not found in root project 'MyProject' 。”

标签 android build gradle android-studio

在更改笔记本电脑并更新到 Android Studio 版本 0.8.2 后尝试构建我的项目时出现此错误。

FAILURE: Build failed with an exception.

  • What went wrong: Task '' not found in root project 'MyProject'.

  • Try: Run gradle tasks to get a list of available tasks. Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED



这是我的 Gradle 文件:

顶级 settings.gradle
include ':MyProject'

我的项目中的 build.gradle:
apply plugin: 'com.android.application'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:0.12.+"
    }
}
repositories {
    mavenCentral()
}

android {
    compileSdkVersion 20
    buildToolsVersion "20"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 20
    }
}

dependencies {
    compile 'de.timroes.android:EnhancedListView:0.3.0@aar'
    compile 'com.nineoldandroids:library:2.4.0'
}

顶级 build.gradle 为空

最佳答案

虽然回答晚了,但这对谷歌来说很难(单引号),而且不清楚发生了什么。我还没有评论或要求范围(或发布 3 个链接)的声誉,所以这个答案可能有点乏味。

为了快速回答,您的项目中可能有多个 Gradle 插件。

同步 Gradle 包装器和插件

我的问题似乎始于损坏的 IML 文件。 Android Studio(在关闭和重新打开项目之间)开始提示 IML 消失了(它没有)并且应该删除一个模块,我拒绝了。它仍然存在,我升级到 AS 0.8.7(金丝雀 channel )并陷入了 OP 问题(在根项目中找不到任务“”)。这完全阻止了构建,所以我不得不深入研究 Gradle。

我在 OSX 上的修复步骤(请针对 Windows 进行调整):

  • 将 Android Studio 升级到 0.8.7
  • 偏好 |更新 |将“Beta channel ”切换到“Canary channel ”,然后立即检查。
  • 你也许可以跳过这个。
  • 检查 Gradle 包装器(当前为 1.12.2;此时不要尝试使用 2.0)。
  • 假设您不需要特定版本,请使用 latest supported distribution
    $ vi ~/project/gradle-wrapper.properties ... distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip
  • 这可以在 Android Studio 中的 Preferences | 中设置。 Gradle(但 0.8.7 给了我“无效位置”错误)。
  • “包装器”只是每个 Android Studio 项目的 Gradle 副本。它允许您在操作系统中使用 Gradle 2,并在您的项目中使用不同的版本。 Android 开发人员文档解释说 here .
  • 然后调整插件的 build.gradle 文件。对于整个项目,Gradle 插件版本必须与发行版/包装器版本兼容。由于工具文档 (tools.android.com/tech-docs/new-build-system/user-guide#TOC-Requirements) 有点过时,您可以将插件版本设置得太低(如 0.8.0)和Android Studio 将在可接受的包装器范围内引发错误。

  • 例如,在 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.12.1)时,我的构建成功了。 +) 到固定版本: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,然后同步:
  • 工具 |安卓 |将项目与 Gradle 文件同步
  • 在放弃之前重复整个序列(退出...同步)几次。
  • 清理项目
  • 构建 |清洁工程

  • 如果你看到这个...

    在我最近的构建中,我一直看到可怕的失败(异常页面),但在几秒钟内消息就会清除,构建成功并部署了应用程序。由于我永远无法解释它并且该应用程序可以运行,因此我从未注意到我的项目中有两个 Gradle 插件。所以我认为 Gradle 插件互相争斗;一个崩溃了,另一个失去了状态并报告了错误。

    如果你有时间,1 小时的视频“A Gentle Introduction to Gradle”(www.youtube.com/watch?v=OFUEb7pLLXw)真的帮​​助我处理了 Gradle 构建文件、任务、构建决策等。

    免责声明

    在从事不同的职业之后,我正在外国操作系统上学习整个堆栈......所有这些都是在压力下同时进行的。在过去的几个月里,我遇到了我认为 Android 遇到的每一面墙;我经常来这里,这是我的第一篇文章。我认为这是一个很难解决的问题,所以如果我的回答的质量反射(reflect)了我在解决它时遇到的困难,我真诚地道歉。

    关于Android Studio 构建失败,因为 "Task ' ' not found in root project 'MyProject' 。”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25172006/

    相关文章:

    android - 出现错误 'Error:Gradle: Execution failed for task ':app:transformClassesWithDexForDebug'。

    java - 序列化一个 ArrayList

    android直接移植wifi

    build - 错误 2 系统找不到 Sublime Text 2、Windows 8 中指定的文件

    TFS - 错误 : "The type or namespace name ' blabla' does not exist in the namespace 'blublu' (are you missing an assembly reference? )

    java - 在 IntelliJ 中并行多次运行相同的 gradle 任务

    gradle - IDEA中缺少Gradle JavaDoc

    android - Jsoup html代码解析

    android - gradle 库与应用程序模块集成的问题

    kotlin - 如何在Gradle中添加任务依赖项?