Gradle 构建不起作用:任务“:MyApp:compileDebug”执行失败

     2023-05-06     81

关键词:

【中文标题】Gradle 构建不起作用:任务“:MyApp:compileDebug”执行失败【英文标题】:Gradle build not working: Execution failed for task ':MyApp:compileDebug' 【发布时间】:2014-01-31 11:42:58 【问题描述】:

我正在尝试将项目迁移到 Gradle,但每次运行命令时都会引发异常

gradle build --stacktrace

我使用的是 Gradle 1.6。这是错误的堆栈跟踪:

:MyApp:compileDebug FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':MyApp:compileDebug'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':MyApp:compileDebug'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
    at org.gradle.api.internal.changedetection.state.CacheLockReleasingTaskExecuter$1.run(CacheLockReleasingTaskExecuter.java:35)
    at org.gradle.internal.Factories$1.create(Factories.java:22)
    at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:179)
    at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:232)
    at org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStore.java:142)
    at org.gradle.api.internal.changedetection.state.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskArtifactStateCacheAccess.java:83)
    at org.gradle.api.internal.changedetection.state.CacheLockReleasingTaskExecuter.execute(CacheLockReleasingTaskExecuter.java:33)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:58)
    at org.gradle.api.internal.tasks.execution.ContextualisingTaskExecuter.execute(ContextualisingTaskExecuter.java:34)
    at org.gradle.api.internal.changedetection.state.CacheLockAcquiringTaskExecuter$1.run(CacheLockAcquiringTaskExecuter.java:39)
    at org.gradle.internal.Factories$1.create(Factories.java:22)
    at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:124)
    at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:112)
    at org.gradle.cache.internal.DefaultPersistentDirectoryStore.useCache(DefaultPersistentDirectoryStore.java:134)
    at org.gradle.api.internal.changedetection.state.DefaultTaskArtifactStateCacheAccess.useCache(DefaultTaskArtifactStateCacheAccess.java:79)
    at org.gradle.api.internal.changedetection.state.CacheLockAcquiringTaskExecuter.execute(CacheLockAcquiringTaskExecuter.java:37)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:41)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:42)
    at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:282)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.executeTask(DefaultTaskPlanExecutor.java:48)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.processTask(DefaultTaskPlanExecutor.java:34)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:27)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:89)
    at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
    at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
    at org.gradle.api.internal.changedetection.state.TaskCacheLockHandlingBuildExecuter$1.run(TaskCacheLockHandlingBuildExecuter.java:31)
    at org.gradle.internal.Factories$1.create(Factories.java:22)
    at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:124)
    at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:112)
    at org.gradle.cache.internal.DefaultPersistentDirectoryStore.useCache(DefaultPersistentDirectoryStore.java:134)
    at org.gradle.api.internal.changedetection.state.DefaultTaskArtifactStateCacheAccess.useCache(DefaultTaskArtifactStateCacheAccess.java:79)
    at org.gradle.api.internal.changedetection.state.TaskCacheLockHandlingBuildExecuter.execute(TaskCacheLockHandlingBuildExecuter.java:29)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
    at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
    at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:166)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:113)
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:81)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:64)
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33)
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:35)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
    at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:50)
    at org.gradle.api.internal.Actions$RunnableActionAdapter.execute(Actions.java:171)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:201)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:174)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:170)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:139)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
    at org.gradle.launcher.Main.doAction(Main.java:48)
    at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
    at org.gradle.launcher.Main.main(Main.java:39)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:32)
    at org.gradle.launcher.GradleMain.main(GradleMain.java:26)
Caused by: org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler error output for details.
    at org.gradle.api.internal.tasks.compile.jdk6.Jdk6JavaCompiler.execute(Jdk6JavaCompiler.java:42)
    at org.gradle.api.internal.tasks.compile.jdk6.Jdk6JavaCompiler.execute(Jdk6JavaCompiler.java:33)
    at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:95)
    at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:48)
    at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:34)
    at org.gradle.api.internal.tasks.compile.DelegatingJavaCompiler.execute(DelegatingJavaCompiler.java:29)
    at org.gradle.api.internal.tasks.compile.DelegatingJavaCompiler.execute(DelegatingJavaCompiler.java:20)
    at org.gradle.api.internal.tasks.compile.IncrementalJavaCompilerSupport.execute(IncrementalJavaCompilerSupport.java:33)
    at org.gradle.api.internal.tasks.compile.IncrementalJavaCompilerSupport.execute(IncrementalJavaCompilerSupport.java:24)
    at org.gradle.api.tasks.compile.Compile.compile(Compile.java:68)
    at org.gradle.api.internal.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:216)
    at org.gradle.api.internal.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:122)
    at org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:147)
    at org.gradle.api.tasks.compile.JavaCompile_Decorated.invokeMethod(Unknown Source)
    at org.gradle.util.ReflectionUtil.invoke(ReflectionUtil.groovy:23)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:217)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:210)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:199)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:526)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:509)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
    ... 67 more

我在 settings.gradle 中定义了以下结构:

include ':MyApp'
include ':Libraries:LibProject1'
include ':Libraries:LibProject2'
include ':Libraries:LibProject3'
include ':Libraries:LibProject4'

而我项目的目录是这样的:

- My Repository
  -- settings.gradle
  - My App
    -- build.gradle
  - Libraries
    - LibProject1
      -- build.gradle
    - LibProject2
      -- build.gradle
    - LibProject3
      -- build.gradle
    - LibProject4
      -- build.gradle

我的应用> build.gradle 文件是这样的:

buildscript 
    repositories 
        mavenCentral()
    
    dependencies 
        classpath 'com.android.tools.build:gradle:0.5.+'
    

apply plugin: 'android'

dependencies 
    compile fileTree(dir: 'libs/main', include: '*.jar')
    compile project(':Libraries:LibProject1')
    compile project(':Libraries:LibProject2')
    compile project(':Libraries:LibProject3')
    compile project(':Libraries:LibProject4')


android 
    compileSdkVersion "Google Inc.:Google APIs:19"
    buildToolsVersion "19.0.1"

    sourceSets 
        main 
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src/main/java', 'src-gen/main/java', 'generated']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        
    

而所有的LibProject#> build.gradle文件都是这样的:

buildscript 
    repositories 
        mavenCentral()
    
    dependencies 
        classpath 'com.android.tools.build:gradle:0.5.+'
    

apply plugin: 'android-library'

android 
    compileSdkVersion 19
    buildToolsVersion "19.0.1"

    sourceSets 
        main 
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        
    

我已经尝试了在其他线程中找到的几种可能的解决方案,但似乎没有任何效果。

我还将我的项目结构及其所有 .gradle 文件与另一个正在成功构建的项目进行了比较,我找不到任何遗漏。

与我在相关线程中发现的其他问题不同,这里的堆栈跟踪似乎没有提供任何关于引发异常的具体原因。有什么想法吗?

【问题讨论】:

:MyApp:compileDebug 因编译错误而失败,并且应该在某处出现编译器错误消息。 (您不必使用--debug--stacktrace 来获取该消息。) @PeterNiederwieser 我找不到任何编译器错误消息。我得到的只是Execution failed for task ':MyApp:compileDebug'. > Compilation failed; see the compiler error output for details. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 在哪里可以获得更详细的编译器消息? 请问您为什么不使用更新版本的插件? Android-Gradle 插件现在为 0.7.4,Gradle 为 1.9 - 并不是说​​这对您遇到的问题有影响,但它可能会。 编译器错误消息将在您显示的消息上方的某个位置。对于您的升级问题,请参阅 SO 上的类似问题。 在 build.gradle(文件中的第 6 行)中,您需要将插件的类路径更改为“com.android.tools.build:gradle:0.7.+”。这应该会导致插件寻找正确的 Gradle 版本(对于插件 - 1.9)。 【参考方案1】:

如果您不使用 Android Annotations 但仍然看不到原因,您实际上可以按照消息中的说明执行操作(检查编译器输出),方法是:

转到构建选项卡

将输出切换到编译器输出

【讨论】:

哪天我会遇到错误,却不知道有这个出色的按钮,谢谢! 我为 Android 开发已经 7 年了,但是每次我遇到问题时,我都不关心这个按钮,谢谢【参考方案2】:

我终于找到了问题所在。该项目使用 Android Annotations,我已将其生成的源文件夹包含在我的 build.gradle 文件中。

当 Gradle 再次尝试生成源时,会因为类重复而失败。

这是正确的 build.gradle:

buildscript 
    repositories 
        mavenCentral()
    
    dependencies 
        classpath 'com.android.tools.build:gradle:0.5.+'
    

apply plugin: 'android'

dependencies 
    compile fileTree(dir: 'libs/main', include: '*.jar')
    compile project(':Libraries:LibProject1')
    compile project(':Libraries:LibProject2')
    compile project(':Libraries:LibProject3')
    compile project(':Libraries:LibProject4')


android 
    compileSdkVersion "Google Inc.:Google APIs:19"
    buildToolsVersion "19.0.1"

    sourceSets 
        main 
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src/main/java', 'src-gen/main/java']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        
    

【讨论】:

对不起,这个 Gradle 文件的主要区别是什么? @IgorGanapolsky 'generated' 文件夹不包含在java.srcDirs 中。 有趣。我遇到了同样的问题,我正在使用 AA,但我在 srcDirs 中没有“生成”文件夹。 @FelipeBari src-gen 是什么? @IgorGanapolsky 这是一个由其他东西自动生成的类的文件夹。在我的例子中,它存储了所有由 greenDAO 创建的数据库类。

Gradle zipAlign 任务不起作用?

】GradlezipAlign任务不起作用?【英文标题】:GradlezipAligntasknotworking?【发布时间】:2013-07-1009:04:53【问题描述】:GradlezipAlign任务似乎对我不起作用,不确定我做错了什么。我试过包括zipAlign任务,但不包括它,但它似乎没有什么... 查看详情

gradle 中的 shadow 插件不起作用 - gradle build 不会构建胖 jar

】gradle中的shadow插件不起作用-gradlebuild不会构建胖jar【英文标题】:shadowpluginingradleisnotworking-gradlebuilddoesnotbuildafatjar【发布时间】:2018-05-2816:05:14【问题描述】:我有以下build.gradle内容:group\'com.example\'version\'1.0-SNAPSHOT\'buildscript... 查看详情

gradle 连续构建技巧在 docker 容器中不起作用

】gradle连续构建技巧在docker容器中不起作用【英文标题】:gradlecontinuousbuildtrickdoesn\'tworkindockercontainer【发布时间】:2020-11-0519:04:58【问题描述】:您好,我正在尝试使用here中描述的技巧来允许在docker容器内连续构建。当我在主... 查看详情

使用 Spring Boot 从 Gradle 多模块项目构建的 Jar 不起作用

】使用SpringBoot从Gradle多模块项目构建的Jar不起作用【英文标题】:JarbuiltfromGradlemulti-moduleprojectwithSpringBootdoesn\'twork【发布时间】:2021-08-0316:47:33【问题描述】:我创建了spring-bootgradle多模块项目,它由3个模块组成:控制器、服... 查看详情

如果我正在调用 Typescript 构建任务,为啥 VS Code 集成终端不起作用?

】如果我正在调用Typescript构建任务,为啥VSCode集成终端不起作用?【英文标题】:WhydoestheVSCodeintegratedterminalnotworkifI\'minvokingaTypescriptbuildtask?如果我正在调用Typescript构建任务,为什么VSCode集成终端不起作用?【发布时间】:2020-0... 查看详情

groovy构建工具(构建工具引入|gradle构建工具作用|传统的依赖管理)

文章目录一、构建工具引入二、Gradle构建工具作用三、传统的依赖管理一、构建工具引入构建工具用于管理代码项目的依赖,编译,测试,发布周期;常见的构建工具:Ant,Make,Maven,Gradle;其中Ant和Maven都使用xml作为构建文件,Make使用Makefile... 查看详情

gradle复合构建(代码片段)

...构建方式1:通过命令[`--include-build`](https://docs.gradle.org/current/userguide/composite_builds.html#command_line_composite)定义复合构建:方式2:通过settings.gradle定义复合构建:[定义Gradle插件的构建](https://docs.gradle.org/current/us... 查看详情

IntelliJ 项目“JS 客户端和 JVM 服务器 | Gradle”不起作用

】IntelliJ项目“JS客户端和JVM服务器|Gradle”不起作用【英文标题】:IntelliJProject"JSClientandJVMServer|Gradle"doesnotwork【发布时间】:2019-12-1119:25:39【问题描述】:当我使用IntellijUltimate2019.2创建指定的项目类型时然后构建项目(F... 查看详情

构建变量在 TFS 中的发布中不起作用

】构建变量在TFS中的发布中不起作用【英文标题】:BuildVariablenotWorkinreleaseinTFS【发布时间】:2018-04-1914:59:17【问题描述】:我正在尝试在TFS中使用发布,我添加了一个“命令行”任务要在工具中执行类似“python”的操作,我添... 查看详情

在 Android Studio 2.3.3 中更新到 gradle 3.2.1 不起作用

】在AndroidStudio2.3.3中更新到gradle3.2.1不起作用【英文标题】:Updatetogradle3.2.1inAndroidstudio2.3.3notworking【发布时间】:2020-02-2212:02:48【问题描述】:几周前我收到来自google的消息,我需要将API级别更新到28或更高,从那时起我尝试执... 查看详情

未为任务启用 Gradle 构建缓存

】未为任务启用Gradle构建缓存【英文标题】:Gradlebuildcacheisnotenabledfortask【发布时间】:2018-11-0315:57:35【问题描述】:我已为我的项目启用gradle构建缓存。但是,我们正在使用一些非内置任务,例如来自第三方插件的npm-install。Gr... 查看详情

gradle 构建时出现异常(任务:'app:mergeDebugResources')

】gradle构建时出现异常(任务:\\\'app:mergeDebugResources\\\')【英文标题】:Exceptionwhilegradlebuild(Task:\'app:mergeDebugResources\')gradle构建时出现异常(任务:\'app:mergeDebugResources\')【发布时间】:2021-12-1909:17:47【问题描述】:我尝试构建... 查看详情

gradle(v7.5)使用(代码片段)

gradle(v7.5)使用gradle和maven都是项目构建工具,Gradle和Maven两种构建方式存在一些根本差异。Gradle基于任务依赖关系图-其中任务就是工作,而Maven是基于固定的过程和线性模型。使用Maven构建项目时,目标将附加到项目阶... 查看详情

gradle任务

Gradle构建脚本描述一个或多个项目。每个项目都由不同的任务组成。任务是构建执行的一项工作。任务可以是编译一些类,将类文件存储到单独的目标文件夹中,创建JAR,生成Javadoc或将一些归档发布到存储库。定义任务任务是... 查看详情

在android gradle构建之前执行任务?

】在androidgradle构建之前执行任务?【英文标题】:executetaskbeforeandroidgradlebuild?【发布时间】:2013-09-0303:42:04【问题描述】:是否可以在调用之前gradle执行任务gradlebuild类似预编译的东西。有人请帮忙。这样的事情是否可行?如何... 查看详情

Gradle构建错误,错误:任务':app:transformResourcesWithMergeJavaResForDebug'的执行失败

】Gradle构建错误,错误:任务\\\':app:transformResourcesWithMergeJavaResForDebug\\\'的执行失败【英文标题】:Gradlebuilderror,Error:Executionfailedfortask\':app:transformResourcesWithMergeJavaResForDebug\'Gradle构建错误,错误:任务\':app:transformResource 查看详情

Android项目中缺少Gradle构建任务installRelease

】Android项目中缺少Gradle构建任务installRelease【英文标题】:GradlebuildtaskinstallReleasemissinginAndroidproject【发布时间】:2016-02-2703:19:58【问题描述】:Gradle似乎在我正在处理的项目中丢失了构建类型。我可以重新创建一个最小的问题... 查看详情

Gradle 4.7构建抛出错误执行任务bootRepackage

】Gradle4.7构建抛出错误执行任务bootRepackage【英文标题】:Gradle4.7buildthrowerrorexecutingtaskbootRepackage【发布时间】:2018-10-1205:50:35【问题描述】:在我现有的springboot项目中执行gradlebuild命令时,该项目/正在使用旧版本的Gradle构建良... 查看详情