Android Studio构build失败,在根项目“MyProject”中找不到“Task”。
在更改笔记本电脑并更新到Android Studio版本0.8.2后尝试构build我的项目时出现此错误。
失败:生成失败,出现exception。
出了什么问题:在根项目“MyProject”中找不到“任务”。
尝试:运行gradle任务以获取可用任务的列表。 运行–stacktrace选项来获取堆栈跟踪。 运行–info或–debug选项来获得更多的日志输出。
构build失败
这是我的Gradle文件:
顶级settings.gradle
include ':MyProject'
build.gradle在MyProject中:
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是空的
尽pipe回答迟了,但这对Google(单引号)来说很难,而且还不清楚发生了什么事情。 我还没有评论或要求范围的声望(或后3链接),所以这个答案可能有点乏味。
要快速回答,您的项目中可能会有多个Gradle插件。
同步Gradle包装器和插件
我的问题似乎开始于一个损坏的IML文件。 Android Studio(closures和重新打开项目之间)开始抱怨一个IML已经消失了(不是),应该删除一个模块,我拒绝了。 它坚持下来,我升级到AS 0.8.7(金丝雀通道),并卡住OP问题(任务“没有在根项目中find)。 这完全阻止构build,所以我不得不挖到Gradle。
我在OSX上修复步骤(请调整为Windows):
- 将Android Studio升级到0.8.7
- 首选项| 更新| 将“Beta Channel”切换到“Canary Channel”,然后执行Check Now。
- 你可以跳过这个。
-
检查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的副本。 它允许你在你的OS中使用Gradle 2,在你的项目中使用不同的版本。 Android开发人员文档在这里解释。
- 然后调整你的插件的 build.gradle文件。 Gradle插件版本必须与整个项目的分发/包装版本兼容。 由于Tools文档(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" }
和(在每种情况下logging您要更改的版本之后)validation项目中的每个build.gradle文件都采用相同的插件版本。 保留“+”应该可以工作(0.12.0,0.12.1,0.12.2等),但是当我更新Google的Volley库(原来的gradle:0.8。+)和我的主项目(原来的0.12。 +)到固定版本:gradle:0.12.2。
其他检查
-
确保在同一个项目中没有两个Android应用程序模块
-
这可能与最终的解决scheme(上面的不同Gradle版本)交互,并导致
UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define (various classes)
-
要检查,Build | 使项目不应该popup一个窗口询问你想要做什么应用程序。
-
- 使caching失效
- 文件| 使caching无效/重启(stackoverflow.com/a/19223269/513413)
- 如果第2步不起作用,请删除〜/ .gradle /(www.wuttech.com/index.php/tag/groovy-lang-closure/)
- 退出Android Studio
- $ rm -rf〜/ .gradle /
- 启动Android Studio,然后同步:
- 工具| Android | 与Gradle文件同步项目
- 在放弃之前重复这个整个序列(退出…同步)几次。
- 清理项目
- 构build| 清洁项目
如果你看到这个…
在我最近的版本中,我一直看到可怕的失败(例外的页面),但在几秒钟内消息将清除,build立成功,应用程序部署。 由于我永远无法解释它和应用程序的工作,我从来没有注意到我的项目中有两个Gradle插件。 所以我认为Gradle插件互相争斗; 一个坠毁,另一个失去了状态,并报告错误。
如果有时间的话,1小时的video“Gradle简介”(www.youtube.com/watch?v=OFUEb7pLLXw)确实帮助我了解了Gradle构build文件,任务和构build决策等。
放弃
在不同的职业生涯中,我正在学习整个堆栈,在一个外部操作系统上……在同一时间,在压力之下。 在过去的几个月中,我已经打到了我认为Android的每一面墙; 我经常来这里,这是我的第一篇文章。 我认为这是一个很难解决的问题,所以我真诚地道歉,如果我的答案的质量反映了我遇到的困难。
从sdk manager下载您导入的项目的系统映像(您的项目的目标android级别)。
这个错误是在你没有安装sdk文件夹的android项目的target sdk的时候发生的
例如。 您导入的项目的目标sdk级别可能是android-19和sdk文件夹 – >系统映像,您可能已安装android-21。 所以你必须从SD卡pipe理器下载android-19系统映像和其他文件,或者如果你有系统映像,你可以复制粘贴它。
去掉:
<facet type="android" name="Android"> <configuration /> </facet>
在你的iml文件中。 这对我行得通。
当我closures一个Android Studio项目并导入另一个Eclipse项目时,最近发生了这种情况。 这似乎是Android Studio中的一个错误,它保留了以前打开的项目的一些gradle设置,然后在新项目中感到困惑。
解决scheme非常简单:closures项目并完全closuresAndroid Studio,然后重新打开它,然后导入/打开新项目。 一切从此顺利进行。
简单的解决方法是
- 构build>清洁项目
- 重新启动Android Studio
显然这个错误有多个原因。 这是为我修复的。
我正在运行这样的构build命令:
./gradlew :testapp: build
运行它没有空间解决问题:
./gradlew :testapp:build
在我的情况下,在“文件” – >“项目结构” – >“项目”下设置与“Android插件版本”相同的“Gradle版本”为我解决了这个问题。
确保你的gradle文件中有最新的值。 在撰写本文时:
-
buildToolsVersion "21.1.2"
-
依赖关系{classpath'com.android.tools.build:gradle:1.1.0'}
另一个解决同样问题的方法是:
这发生在我每次使用向导(工作室版本1.3.2)将eclipse项目导入到studio中时发生的。
我发现,很偶然的是,退出Android工作室,然后重新启动工作室,使问题消失。
沮丧,但希望这可以帮助别人…
有时,如果您打开了两个Android Studio窗口,并且在尝试编译时可能会发生此问题。 对于我来说,当我编译一个没有embedded到项目中的支持的Google Cloud Endpoint模块,而不是在不同的Android Studio项目之间共享的时候,当有多个实例打开的时候,这个错误就会出现。 但只要closures其他窗口,一切都会好的。 有时候,你可能不得不重新启动Android Studio。
设置根文件夹的path,然后运行下面的命令
ex : cd C:\Users\maha\Documents\gradle\gs-gradle-master\initial
这就是我所做的
-
删除.idea文件夹
$ mv .idea .idea.bak
-
再次导入项目
我在c:\users\Myuser\.gradle
删除/重命名.gradle
文件夹并重新启动Android Studio,并为我工作
- 打开命令提示符
- 然后通过命令提示符转到您的项目文件夹
- 键入gradlew生成并运行
从一个Git分支切换到另一个时出现这个错误,然后尝试运行“Clean Project”。 我用ack
search任务名称,并在.iml文件中find它。
我的解决scheme是通过单击(在主菜单中)工具> Android>与Gradle文件同步项目来重新生成项目的.iml文件。 ( 感谢这个答案 。)
显然这个问题引起的Android Studio上的各种情况,但原因是build立错误当导入一个现有的项目到Android Studio。
在我的情况下,我已经导入了我的存在的项目,我应该安装一些构build工具,然后最终构buildconfiguration错误。 在这种情况下,只要做以下的事情
- closures当前的项目
- 文件>新build>导入项目(不要使用打开的最近项目)
注意:我确定这种错误不在源代码上,这发生在导入项目上 。
问题
我特意得到了"[module_name]:prepareDebugUnitTestDependencies" task not found
错误,每次运行gradle构build。 这发生在我更新我的Android Studio 3.0.0后。
调查
我之前已经在基于gradle的编译器中添加了命令行选项,您可以在下面find它: File – > Settings – > Build,Execution,Deployment – > Compiler – > Command-line Options 。 具体来说,我已经排除了一些任务,包括上述任务。 虽然在以前的稳定版本(当时的2.3版本)上工作得很好,但是这似乎是构build失败背后的原因。
解
这是许多可能的解决scheme之一。 确保你有下列设置中指定的正确的命令行选项: 文件 – >设置 – >生成,执行,部署 – >编译器 – >命令行选项 ,并没有一个导致这个问题。
在我的情况下,我删除了这个任务的排除(和其他似乎相关的任务),排除了不相关的任务,它的工作!
- 在使用基于Gradle的configuration时,在Android Studio(IntelliJ)上运行简单的JUnittesting
- Android Studio:如何在运行或debugging之前自动卸载APK(或执行adb命令)?
- Android Studio渲染问题:无法find以下类
- 未解决的参考:kotlinx
- 如何解决java.util.zip.ZipException?
- Android Studio / Intellij Idea:一个类的“目录”
- 无法在android studio中导入新的Gradle项目
- 拼写检查android studio / IntelliJ的想法
- Maven与Android Studio / Gradle的依赖关系