Android Studio版本无法使用"任务''在根项目' MyProject'中找不到。"

时间:2014-08-06 23:35:52

标签: android build gradle android-studio

在更换笔记本电脑并更新到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为空

22 个答案:

答案 0 :(得分:60)

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

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

同步Gradle Wrapper和插件

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

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

  1. 将Android Studio升级到0.8.7
    • 偏好设置|更新|将“Beta Channel”切换为“Canary Channel”,然后立即检查。
    • 您可以跳过这个。
  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中设置Gradle(但0.8.7给了我“无效位置”错误)。

    • 'wrapper'只是每个Android Studio项目的Gradle副本。它允许您在操作系统中使用Gradle 2,在项目中使用不同的版本。 Android开发人员文档解释了here
    • 然后调整插件的build.gradle文件。 Gradle插件版本必须与整个项目的分发/包装版本兼容。由于Tools文档(tools.android.com/tech-docs/new-build-system/user-guide#TOC-Requirements)略有过时,您可以将插件版本设置得太低(如0.8.0)和Android Studio将在包装器的可接受范围内抛出错误。
  3. 例如,在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. 清理项目
      • 构建|清洁项目
    5. 如果你看到这个......

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

      如果你有时间,1小时的视频“温柔的Gradle简介”(www.youtube.com/watch?v=OFUEb7pLLXw)真的帮​​助我接近Gradle构建文件,任务,构建决策等。< / p>

      声明

      我在外国操作系统上学习了整个堆栈,经历了不同的职业生涯......所有这些都在同一时间和压力之下。在过去的几个月里,我遇到了我认为Android所拥有的每一面墙;我经常来这里,这是我的第一篇文章。我认为这是一个难以解决的问题,所以如果我的答案的质量反映了我遇到的困难,我真诚地道歉。

答案 1 :(得分:24)

从sdk manager下载已导入项目的系统映像(项目的目标安卓级别)。

如果您没有在sdk文件夹中安装Android项目的目标sdk

,则会出现此错误

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

答案 2 :(得分:13)

卸下:

<facet type="android" name="Android">
    <configuration />
</facet>
你的iml文件中的

。这对我有用。

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

答案 3 :(得分:9)

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

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

答案 4 :(得分:4)

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

  1. 构建&gt;清洁项目
  2. 重新启动Android Studio

答案 5 :(得分:3)

显然这个错误有多种原因。以下是为我修复它的原因。

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

./gradlew :testapp: build

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

./gradlew :testapp:build

答案 6 :(得分:2)

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

答案 7 :(得分:2)

在我的情况下,设置&#39; Gradle版本&#39;与Android插件版本相同&#39;在File-&gt; Project Structure-&gt; Project下为我解决了这个问题。

答案 8 :(得分:2)

有时,如果您打开了两个Android Studio窗口,并且在尝试编译时,可能会出现此问题。对我来说,当我编译一个未嵌入项目的备份Google Cloud Endpoint模块时,而是在不同的Android Studio项目中共享,并且当有多个实例打开时,这个错误用于为我提供帮助。但是一旦你关闭其他窗户,一切都会好起来的。有时,您可能必须完全重启Android Studio。

答案 9 :(得分:2)

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

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

答案 10 :(得分:1)

  1. 打开命令提示符
  2. 然后通过命令提示符
  3. 转到项目文件夹
  4. 键入 gradlew build 并运行

答案 11 :(得分:1)

问题

每次运行gradle build时,我都会遇到"[module_name]:prepareDebugUnitTestDependencies" task not found错误。在将我的Android Studio更新为3.0.0之后发生了这种情况。

研究

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

解决方案

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

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

答案 12 :(得分:1)

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

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

我发现,相当偶然的是,退出Android工作室,然后重新启动工作室再次使问题消失。

令人沮丧,但希望这有助于某人...

答案 13 :(得分:1)

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

  • buildToolsVersion "21.1.2"

  • 依赖项{    classpath&#39; com.android.tools.build:gradle:1.1.0&#39; }

答案 14 :(得分:0)

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

答案 15 :(得分:0)

这就是我做的事情

  1. 删除.idea文件夹

      

    $ mv .idea .idea.bak

  2. 再次导入项目

答案 16 :(得分:0)

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

在我的情况下,我已导入我存在的项目,我本来应该安装很少的构建工具,然后最终构建配置完成了错误。在这种情况下,只需执行以下操作

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

    注意: 在导入项目上发生这种情况时,我确定此类错误不在源代码上。

答案 17 :(得分:0)

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

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

答案 18 :(得分:0)

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

enter image description here

答案 19 :(得分: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

谢谢:)

答案 20 :(得分:0)

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

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

答案 21 :(得分:0)

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

我按照以下步骤修复它:

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

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

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

4.- 点击“立即同步”

这对我有用。

再见!