Android Studio 构建失败,“在根项目‘MyProject’中找不到任务’。”

Posted

技术标签:

【中文标题】Android Studio 构建失败,“在根项目‘MyProject’中找不到任务’。”【英文标题】:Android Studio build fails with "Task '' not found in root project '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。它对我有用。 这么多答案中没有选择???至少然后发布您的答案,这也会对其他人有所帮助。 【参考方案1】:

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

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

同步 Gradle Wrapper 和插件

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

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

    将 Android Studio 升级到 0.8.7 首选项 |更新 |将“Beta 频道”切换到“Canary 频道”,然后立即检查。 您或许可以跳过这个。

    检查了 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。

其他检查

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

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

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

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

    使您的缓存无效 文件 |使缓存无效/重新启动 (***.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 小时的视频“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】:

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

    构建 > 清理项目 重启 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】:
    打开命令提示符 然后通过命令提示符转到您的项目文件夹 输入 gradlew build 并运行

【讨论】:

【参考方案14】:

显然这个问题是由 Android Studio 在各种情况下引起的,但原因是在将现有项目导入到 android studio 时出现构建错误。 就我而言,我已经导入了我应该安装几个构建工具的现有项目,然后最终构建配置完成但出现错误。在这种情况下,只需执行以下操作

    关闭当前项目 文件>新建>导入项目(不要使用打开的最近项目) 笔记: 导入项目上发生这种错误时,我确信源代码上不会出现这种错误。

【讨论】:

【参考方案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】:

这就是我所做的

    删除 .idea 文件夹

    $ mv .idea .idea.bak

    再次导入项目

【讨论】:

问题:- 在项目 ':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.- 点击“立即同步”

这对我有用。

再见!

【讨论】:

以上是关于Android Studio 构建失败,“在根项目‘MyProject’中找不到任务’。”的主要内容,如果未能解决你的问题,请参考以下文章

项目构建失败:任务“compileDebug”在根项目中不明确

android studio:失败:构建失败并出现异常

项目构建失败时,Android Studio 挂起/冻结

Android Studio 构建失败并出现异常任务“:app:dexDebug”执行失败

Flutter Android Studio 构建失败

Android Studio CMake 错误:构建命令失败