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

2023-12-02

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

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

  • 什么地方出了错: 在根项目“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 为空


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

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

同步 Gradle 包装器和插件

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

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

  1. Upgrade Android Studio to 0.8.7
    • 偏好 |更新 |将“Beta 频道”切换到“Canary 频道”,然后立即检查。
    • 您也许可以跳过此步骤。
  2. Checked the Gradle wrapper (currently 1.12.2; don’t try to use 2.0 at this time).
    • 假设您不需要特定版本,请使用最新支持的发行版

      $ 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 文件plugin。对于整个项目,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.1)时,我的构建成功了。 +) 到固定版本:gradle:0.12.2。

其他检查

  1. Ensure you don’t have two Android Application modules in the same Project
    • 这可能会与最终解决方案(上面的不同 Gradle 版本)交互,并导致

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

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

  2. Invalidate your caches
    • 文件 |使缓存无效/重新启动 (stackoverflow.com/a/19223269/513413)
  3. If step 2 doesn't work, delete ~/.gradle/ (www.wuttech.com/index.php/tag/groovy-lang-closure/)
    • 退出 Android Studio
    • $ rm -rf ~/.gradle/
    • Start Android Studio, then sync:
      • 工具|安卓 |将项目与 Gradle 文件同步
    • 在放弃之前重复整个序列(退出...同步)几次。
  4. Clean the project
    • 构建 |清洁工程
  5. 项目结构不匹配;看https://stackoverflow.com/a/64962359/8740349了解详情。

如果你看到这个...

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

如果有时间的话,1小时的视频《Gradle简单介绍》(www.youtube.com/watch?v=OFUEb7pLLXw)确实帮助我处理 Gradle 构建文件、任务、构建决策等。

免责声明

在从事不同的职业之后,我正在外国操作系统上学习整个堆栈……所有这些都是同时在压力下进行的。在过去的几个月里,我遇到了 Android 遇到的每一个障碍;我经常来这里,这是我的第一篇文章。我认为这是一个很难解决的问题,所以如果我的答案的质量反映了我在实现它时遇到的困难,我真诚地道歉。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Studio 构建失败,并显示“在根项目 'MyProject' 中未找到任务 ''”。 的相关文章

随机推荐

  • WebSQL:SQLResultSetRowList 中返回的行是否不可变?

    我一直在从 WebSQL 数据库中获取行 并且返回的行似乎是只读的 db readTransaction function t1 t1 executeSql SELECT FROM Foo WHERE id 1 function t2 re
  • React useEffect 抛出错误:无法对已卸载的组件执行 React 状态更新

    我正在为我的 Spotify API 应用程序使用 React Native 当我想从我的服务器获取数据时axios in useEffect因为我想在组件加载时渲染返回的项目 它会抛出错误 Can t perform a React st
  • 嵌入式redis无法启动-ERR不支持的CONFIG参数:notify-keyspace-events

    我使用的是embedded redis 0 6版本和spring session data redis 1 0 1 RELEASE 使用 mvn spring boot run 命令执行 spring boot 之后 tomcat 服务器启
  • AJAX + jQuery 变量不会传递给 PHP

    我正在尝试做一些非常简单的事情 将 2 个文本变量传递给 php 脚本并将它们插入到 MySQL 数据库中 然而 由于某种原因 我无法让变量传递 所以我只是在数据库中得到空记录 function ajaxCall ajax type GET
  • 循环遍历具有冒号分隔字符串的文件

    我有一个如下所示的文件 work week day england work1 week day sweden work2 week day 每次我循环遍历列表时 我都想将每个字符串作为我可以使用的变量 例如 如果我想知道我在哪个位置工作
  • C++ 指针算术怪异

    我发现了我的错误 几个小时后 并将其隔离在以下程序中 问题在于使用指向结构的指针时计算 pst2 变量值的方式 当使用指向 char 的指针时 一切正常 为什么是这样 使用gcc g 版本 Debian 4 4 5 8 4 4 5 对于那些
  • clang-format 使用指示符删除数组定义中的新行

    如果可能的话 我喜欢用指示符定义数组值 enum Mode NONE SPLIT FILES SINGLE FILE INVALID const std string ModeName NONE NONE SPLIT FILES SPLIT
  • 确定 HTML5 数据库内存使用情况

    我正在向我的 Google Chrome 扩展添加 sqlite 支持 以存储历史数据 创建数据库时 需要设置最大大小 我使用了5MB 正如许多示例中建议的那样 我想知道我实际使用了多少内存 例如添加 1000 条记录后 以了解何时达到 5
  • ASP.NET MVC 控制器生命周期

    据我了解 在每个 Web 请求期间不会调用控制器的构造函数 假设这是真的 那么控制器的生命周期是多少 是在应用程序启动时 构造 的 然后通过每个 Web 请求注入的请求上下文进行缓存和调用吗 需要明确的是 我并不是在问如何模拟构造函数行为
  • 使用 Symbolserver 调试 ASP.NET MVC4 的夜间构建

    我使用此描述为我的项目获取 ASP NET MVC 的夜间构建 http blogs msdn com b henrikn archive 2012 06 01 using nightly asp net web stack nuget p
  • Angular2:进度/加载覆盖指令

    我正在尝试在 Angular2 中创建一个加载指示器 覆盖层 我可以将其添加到任何容器 div 中 当动态布尔属性如isLoading更改时 它应该使 div 变灰并显示旋转指示器 并在属性更改回来后再次消失 我得到了一个可行的解决方案 C
  • python requests.get() 返回一个空字符串

    当我运行下面的代码时 它返回一个空字符串 url http www allflicks net wp content themes responsive processing processing us php draw 5 columns
  • 使用 pandoc 将 markdown 转换为 pdf 时如何强制将图像转换为文本

    我制造了一个GitHub 维基百科 软件包手册 我想将其转换为精美的 pdf 手册 然而 我在处理图表时遇到了一些麻烦 其中许多图表都放在接下来的一页中 远远落后于文本中应有的位置 这使得文档非常难以阅读 为此 我基本上遵循了建议here
  • 检查输入是否为整数

    为了学习 C 我正在翻译我用 Python 编写的程序 我写了这个 n 0 while n lt 2 try n int raw input Please insert an integer bigger than 1 except Val
  • Java:计算三角形的面积

    import java lang Math import java awt public class Triangle implements Shape java awt Point a java awt Point b java awt
  • 如何在邮件服务器上的 HTML 电子邮件中嵌入图像?

    如何在 HTML 中嵌入图像 以便图像与 html 文件内容一起传递 而不需要单独访问服务器来检索图像 我们需要它在签名离开邮件服务器之前将公司徽标嵌入到签名中 我们不想使用雷鸟或 Outlook 等客户端解决方案来添加签名 thanks
  • Google 身份服务 - 保持登录状态

    我正在从 Google 登录平台库迁移到新的 Google 身份服务使用一键登录 但当用户刷新或转到其他页面时 网站会自动注销用户 这是加载一键登录的每个页面上都存在的代码 div div 删除它只会让用户退出 无法重新登录 有一个cook
  • Google App Engine - 如何扩展 db.IntegerProperty

    当我在整数和字符串之间交换很多时 我希望扩展 db IntegerProperty 以下是一些代码片段和我在应用程序启动器日志中收到的错误消息 有什么指点吗 谢谢 大卫 class FSIdProperty db IntegerProper
  • 仅 CSS 动画绘制具有边框半径和透明背景的圆

    我正在尝试绘制一个具有边框半径的圆 并为其设置动画 我可以做到这一点 但我不能做的是覆盖元素并将圆圈背景设置为透明 而不取消隐藏蒙版 我无法使其在元素上透明 因为需要应用遮罩来隐藏圆圈的左半部分 因为它旋转以模仿绘制效果 HTML div
  • Android Studio 构建失败,并显示“在根项目 'MyProject' 中未找到任务 ''”。

    在更换笔记本电脑并更新到 Android Studio 版本 0 8 2 后尝试构建项目时 我收到此错误 失败 构建失败并出现异常 什么地方出了错 在根项目 MyProject 中找不到任务 尝试 运行 gradle 任务以获取可用任务的列