【问题标题】:Android Studio build fails with "Task '' not found in root project 'MyProject'."Android Studio 构建失败,“在根项目‘MyProject’中找不到任务’。”
【发布时间】:2014-09-30 01:47:18
【问题描述】:

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

FAILURE:构建失败并出现异常。

  • 出了什么问题: 在根项目“MyProject”中找不到任务“”。

  • 尝试: 运行 gradle 任务以获取可用任务的列表。使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。

构建失败

这是我的 Gradle 文件:

顶级设置.gradle

include ':MyProject'

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 为空

【问题讨论】:

  • 你在运行什么命令?
  • @Opal 我只是想清理和重建
  • 嗯..好的。你执行什么命令?
  • 尝试关闭并重新打开 Android Studio。它对我有用。
  • 这么多答案中没有选择???至少然后发布您的答案,这也会对其他人有所帮助。

标签: android build gradle android-studio


【解决方案1】:

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

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

同步 Gradle Wrapper 和插件

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

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

  1. 将 Android Studio 升级到 0.8.7
    • 首选项 |更新 |将“Beta 频道”切换到“Canary 频道”,然后立即检查。
    • 您或许可以跳过这个。
  2. 检查了 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. +) 到固定版本:gradle:0.12.2。

其他检查

  1. 确保您在同一个项目中没有两个 Android 应用程序模块

    • 这可能会与最终解决方案(不同的 Gradle 版本,如上)交互,并导致

      UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define (various classes)

    • 检查,构建 | Make Project 不应弹出询问您要制作什么应用程序的窗口。

  2. 使您的缓存无效
    • 文件 |使缓存无效/重新启动 (stackoverflow.com/a/19223269/513413)
  3. 如果第 2 步不起作用,请删除 ~/.gradle/ (www.wuttech.com/index.php/tag/groovy-lang-closure/)
    • 退出 Android Studio
    • $ rm -rf ~/.gradle/
    • 启动 Android Studio,然后同步:
      • 工具 |安卓 |将项目与 Gradle 文件同步
    • 在放弃之前重复整个序列(退出...同步)几次。
  4. 清理项目
    • 构建 |清洁项目

如果你看到这个...

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

如果您有时间,1 小时的视频“Gradle 简介”(www.youtube.com/watch?v=OFUEb7pLLXw) 确实帮助我了解 Gradle 构建文件、任务、构建决策等。

免责声明

我正在学习这整个堆栈,在一个外国操作系统上,在从事不同的职业之后......同时在压力下。在过去的几个月里,我遇到了我认为 Android 拥有的每一面墙。我经常来这里,这是我的第一篇文章。我认为这是一个很难解决的问题,所以如果我的答案的质量反映了我在解决问题时遇到的困难,我深表歉意。

【讨论】:

  • 很好的答案,没有什么可道歉的,感谢 YouTube 链接
  • 谢谢。 “其他检查”中的第 3 步对我来说是这样的:$ rm -rf ~/.gradle/
【解决方案2】:

从 sdk 管理器为您导入的项目下载系统映像(项目的目标 android 级别)。

当您没有在 sdk 文件夹中安装您的 android 项目的目标 sdk 时会出现此错误

例如。您导入的项目的目标 sdk 级别可能是 android-19 并且在 sdk 文件夹->系统图像上您可能安装了 android-21。所以你必须从 sdk manager 下载 android-19 系统映像和其他文件,或者如果你有系统映像,你可以复制粘贴它。

【讨论】:

  • 这为我解决了这个问题 - 我还注意到 AS 中出现黄色警告“Gradle 项目同步失败”,当我查看“消息”窗口时,它包含一个用于安装缺少的目标 SDK 的超链接,其中包含一些点击。
【解决方案3】:

删除:

<facet type="android" name="Android">
    <configuration />
</facet>

在您的 iml 文件中。这对我有用。

https://plus.google.com/+AlexRuiz/posts/49hP3V9GSGe

【讨论】:

  • 这不适用于 Gradle 项目,是吗?我的 project.xml 包含 &lt;facet type="java-gradle" name="Java-Gradle"&gt;...
【解决方案4】:

这发生在我最近关闭一个 Android Studio 项目并导入另一个 Eclipse 项目时。这似乎是 Android Studio 中的一些错误,它保留了以前打开的项目中的一些 gradle 设置,然后在新项目中感到困惑。

解决方案非常简单:关闭项目并完全关闭 Android Studio,然后重新打开它,然后导入/打开新项目。从此一切顺利。

【讨论】:

    【解决方案5】:

    显然,此错误有多种原因。这是为我解决的问题。

    我正在运行这样的构建命令:

    ./gradlew :testapp: build
    

    在没有空格的情况下运行它可以解决问题:

    ./gradlew :testapp:build
    

    【讨论】:

      【解决方案6】:

      从一个 Git 分支切换到另一个分支,然后尝试运行“清理项目”时出现此错误。我使用ack 搜索任务名称,并在 .iml 文件中找到它。

      我的解决方案是通过单击(在主菜单中)工具 > Android > 将项目与 Gradle 文件同步来重新生成项目的 .iml 文件。 (Thanks to this answer.)

      【讨论】:

        【解决方案7】:

        在我的情况下,将“Gradle 版本”设置为与“文件”->“项目结构”->“项目”下的“Android 插件版本”相同,为我解决了这个问题。

        【讨论】:

          【解决方案8】:

          对我来说简单的解决方法是

          1. 构建 > 清理项目
          2. 重启 Android Studio

          【讨论】:

            【解决方案9】:

            同样问题的另一种解决方案:

            每次我使用向导将 eclipse 项目导入工作室时都会发生这种情况(工作室版本 1.3.2)。

            我很偶然地发现,退出 Android Studio,然后再次重新启动 Studio,问题就消失了。

            令人沮丧,但希望这对某人有所帮助......

            【讨论】:

              【解决方案10】:

              有时,如果您打开了两个Android Studio窗口,当您尝试编译时,可能会出现此问题。对我来说,当我编译一个支持的 Google Cloud Endpoint 模块时,该模块没有嵌入到项目中,而是在不同的 Android Studio 项目之间共享,并且当有多个实例打开时,这个错误就会出现。但是,只要您关闭其他窗口,一切都会好起来的。有时,您可能需要完全重启 Android Studio。

              【讨论】:

                【解决方案11】:

                我遇到了这个问题,因为它找不到 Android SDK 路径。我缺少一个 local.properties 文件或一个 ANDROID_HOME 环境变量。

                【讨论】:

                • 好人,同样的事情。在我的 ~/.bash_profile 中添加了 ANDROID_SDK 并且它工作了
                【解决方案12】:

                确保您的 gradle 文件中有最新的值。在撰写本文时:

                • buildToolsVersion "21.1.2"

                • 依赖项{ 类路径'com.android.tools.build:gradle:1.1.0' }

                【讨论】:

                  【解决方案13】:
                  1. 打开命令提示符
                  2. 然后通过命令提示符转到您的项目文件夹
                  3. 输入 gradlew build 并运行

                  【讨论】:

                    【解决方案14】:

                    显然这个问题是由 Android Studio 在各种情况下引起的,但原因是在将现有项目导入到 android studio 时出现构建错误

                    就我而言,我已经导入了我应该安装几个构建工具的现有项目,然后最终构建配置完成但出现错误。在这种情况下,只需执行以下操作

                    1. 关闭当前项目
                    2. 文件>新建>导入项目(不要使用打开的最近项目)

                      笔记: 导入项目上发生这种错误时,我确信源代码上不会出现这种错误。

                    【讨论】:

                      【解决方案15】:

                      问题

                      每次运行 gradle build 时,我都特别得到了 "[module_name]:prepareDebugUnitTestDependencies" task not found 错误。在将我的 Android Studio 更新到 3.0.0 后,这发生在我身上。

                      调查

                      我之前在基于 gradle 的编译器中添加了命令行选项,您可以在以下位置找到:文件 -> 设置 -> 构建、执行、部署 -> 编译器 -> 命令行选项。具体来说,我排除了一些任务,包括上述任务。虽然这在以前的稳定版本(当时是 2.3)上运行良好,但这似乎是构建失败的原因。

                      解决方案

                      这是许多可能的解决方案之一。 确保您在以下设置中指定了正确的命令行选项:File -> Settings -> Build, Execution, Deployment -> Compiler -> Command-line Options,并且没有一个是导致这个问题。

                      在我的例子中,我删除了这个任务(以及其他似乎相关的任务)的排除,排除了不相关的任务,它起作用了!

                      【讨论】:

                        【解决方案16】:

                        设置根文件夹的路径,然后运行以下命令

                        ex : cd C:\Users\maha\Documents\gradle\gs-gradle-master\initial
                        

                        【讨论】:

                          【解决方案17】:

                          这就是我所做的

                          1. 删除 .idea 文件夹

                            $ mv .idea .idea.bak

                          2. 再次导入项目

                          【讨论】:

                          • 问题:- 在项目 ':app' 中找不到任务 'wrapper'。 已为我修复(关闭项目/删除 .idea 文件夹/打开项目)
                          【解决方案18】:

                          我删除/重命名 c:\users\Myuser\.gradle 中的 .gradle 文件夹并重新启动 Android Studio 并为我工作

                          【讨论】:

                            【解决方案19】:

                            就我而言,我遇到了这个问题,即 Android Studio 中的编译选项是“stacktrace”。修改stacktrace--stacktrace,问题解决。

                            【讨论】:

                              【解决方案20】:

                              我已经解决了这个问题你只需要在 Android 文件夹中创建文件

                              转到安卓文件夹

                              创建文件local.properties

                              然后只需在 local.properties 文件中添加此代码:-

                              如果您使用的是 MacBook,那么 sdk.dir=/Users/USERNAME/Library/android/sdk

                              如果您使用的是 Windows,则 sdk.dir=C:\Users\USERNAME\AppData\Local\Android\sdk

                              如果您使用的是 Linux,那么 sdk.dir = /home/USERNAME/Android/sdk

                              如果你想知道你的系统用户名是什么,那么只需使用 Mac whoami 的命令

                              然后只需重新运行命令 react-native run-android

                              谢谢:)

                              【讨论】:

                                【解决方案21】:

                                我在 Mac 上,所以答案就是这样。

                                转到 Android Studio(从菜单栏)-> 首选项-> 构建、执行、部署-> 编译器。然后查找 Command-Line Options ,确保在其文本字段中没有输入任何内容。那应该是空的。然后重新构建项目,就是这样。

                                【讨论】:

                                  【解决方案22】:

                                  我遇到了同样的问题,我在 Gradle 设置中没有出现“任务”选项卡,也没有执行命令 gradlew signinReport 之类的。

                                  我通过以下步骤修复它:

                                  1.- 在 AndroidManifest 的主要活动中添加 android:exported = "true"(因为该活动有一个意图过滤器)

                                  2.- 在 Build.gradle (app) 中将 compileSdkVersion 更新为 31

                                  3.- 在同一位置将 targetSdkVersion 更新为 31。

                                  4.- 点击“立即同步”

                                  这对我有用。

                                  再见!

                                  【讨论】:

                                    猜你喜欢
                                    • 2013-05-21
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 2015-06-14
                                    • 2020-05-25
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 1970-01-01
                                    相关资源
                                    最近更新 更多