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


89

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

失败:生成失败,发生异常。

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

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

建立失败

这是我的Gradle文件:

顶级settings.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我只是想清洁和重建
TomRichardson 2014年

好吧。您执行什么命令?
蛋白石

8
尝试关闭并重新打开Android Studio。它为我工作。
彼得

2
在这些众多中没有选择答案???然后至少发布您的答案,这也会对其他人有所帮助。
kAmol

Answers:


63

尽管回答得很晚,但这对Google来说很难(单引号),目前还不清楚发生了什么。我尚无评论或要求范围的信誉(或发布3个链接),因此此答案可能有点乏味。

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

同步Gradle包装器和插件

我的问题似乎始于损坏的IML文件。Android Studio(在关闭和重新打开项目之间)开始抱怨IML消失了(不是),应该删除一个模块,但我拒绝了。它持续存在,我升级到AS 0.8.7(canary频道),并陷入OP问题(在根项目中找不到“任务”)。这完全阻塞了构建,因此我不得不深入研究Gradle。

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

  1. 将Android Studio升级到0.8.7
    • 首选项| 更新| 将“测试版频道”切换为“金丝雀频道”,然后立即进行检查。
    • 您可能可以跳过此操作。
  2. 检查了Gradle包装器(当前为1.12.2;此时请勿尝试使用2.0)。

    • 假设您不需要特定版本,请使用支持最新发行版

      $ vi ~/project/gradle-wrapper.properties ... distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip

    • 可以在Android Studio的“偏好设置” |“设置”中进行设置。Gradle(但0.8.7给我“无效位置”错误)。

    • “包装器”只是每个Android Studio项目的Gradle副本。它使您可以在操作系统中拥有Gradle 2,并在项目中拥有不同版本。Android Developer文档对此进行了解释在此处进行了
    • 然后调整插件的 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,然后同步:
      • 工具| Android | 与Gradle文件同步项目
    • 放弃之前,重复此整个序列几次(退出...同步)。
  4. 清理项目
    • 建立 清洁项目

如果看到这个...

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

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

免责声明

在从事不同的职业之后,我正在异国他乡的操作系统上学习整个堆栈……都是同时在压力下进行的。在过去的几个月中,我碰到了我认为Android遇到的每堵墙。我经常来过这里,这是我的第一篇文章。我以为这很难解决,所以如果答案的质量反映出我在获取答案时遇到的困难,我深表歉意。


很好的答案,没什么可抱歉的,并且感谢您的YouTube链接
Sabuncu 2014年

谢谢你 “其他支票”中的第3步为我做了什么:$ rm -rf ~/.gradle/
字符串

24

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

如果您没有在sdk文件夹中安装android项目的目标sdk,则会出现此错误

例如 您导入的项目的目标sdk级别可能是android-19,并且在sdk文件夹-> system-images中可能安装了android-21。因此,您必须从sdk管理器下载android-19系统映像和其他文件,或者如果您具有系统映像,则可以复制粘贴。


1
这为我解决了这一问题-我还注意到AS中出现黄色警告“ Gradle project sync failed”,当我在“消息”窗口中查看时,它包含一个超链接,只需单击几下即可安装缺少的目标SDK。
Bungle先生,2015年


9

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

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


4

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

  1. 生成>清理项目
  2. 重新启动Android Studio

3

就我而言,在文件->项目结构->项目下将“ Gradle版本”设置为与“ Android插件版本”相同,为我解决了此问题。


3

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

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

./gradlew :testapp: build

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

./gradlew :testapp:build

3

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

我的解决方案是通过单击(在主菜单中)“工具”>“ Android”>“与Gradle文件同步项目”重新生成项目的.iml文件。由于这个答案。)


2

有时,如果您打开了两个Android Studio窗口,并且在尝试进行编译时,可能会发生此问题。对我来说,当我编译一个未嵌入项目中,而是在不同的Android Studio项目中共享的,支持备份的Google Cloud Endpoint模块时,并且当实例不止一次打开时,此错误会为我产生。但是,一旦关闭其他窗口,一切都会好起来的。有时,您可能必须完全重新启动Android Studio。



1

确保Gradle文件中具有最新值。在撰写本文时:

  • buildToolsVersion "21.1.2"

  • 依赖项{classpath'com.android.tools.build:gradle:1.1.0'}


1

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

每当我使用向导(工作室版本1.3.2)将eclipse项目导入到Studio中时,这种情况就发生了。

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

令人沮丧,但希望这能帮助某人...


1
  1. 打开命令提示符
  2. 然后通过命令提示符进入项目文件夹
  3. 键入gradlew构建并运行

1

问题

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

调查中

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

这是许多可能的解决方案之一。确保在以下文件中的设置中指定了正确的命令行选项:文件->设置->生成,执行,部署->编译器->命令行选项,并且没有一个导致此问题。

就我而言,我删除了此任务(以及其他似乎相关的任务)的排除,将不相关的任务排除在外,并且可以正常工作!


0

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

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


0

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


0

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

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

  1. 关闭当前项目
  2. File> New> Import Project(不要使用打开的最新项目)

    注意:当在Import project上发生此错误时,我确定此类错误不在源代码上。

0

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

在此处输入图片说明


0

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

转到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

如果您想知道您的系统USERNAME是什么,那么只需对Mac whoami使用command

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

谢谢 :)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.