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 包含<facet type="java-gradle" name="Java-Gradle">...
【参考方案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”在根项目中不明确