AS Gradle task构建失败CompilationFailedException解决

问题

在编译运行项目时,会提示一些Task的错误,但并没有列出错误的具体原因。我们无法根据已有的提示找出错误所在。如下:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':module-risk-control:compileDebugJavaWithJavac'.
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.
.......
Caused by: org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler error output for details.
.......
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
	... 32 more

根据报错内容,可以看出是执行compileDebugJavaWithJava任务时报错的错误。异常为:TaskExecutionException(任务执行错误)并被告知编译失败异常(CompilationFailedException)。那么这个所谓的任务又是什么呢?它其实是Gradle构建工程的任务。我们从Android Studio右边栏打开gradle,可以看到有很多的任务。这一点和maven很相似,如下:

image

解决方案

我们可以使用gradlew命令在命令行中来单独执行报错的那个任务,并打印出具体错误,命令如下:

gradlew tasknmae --stacktrace --info

在Mac下gradlew前需要加./

./gradlew tasknmae --stacktrace --info

那么在本例中,报错的taskName为compileDebugJavaWithJavac,则敲入命令

./gradlew compileDebugJavaWithJavac --stacktrace --info

运行后就会看到具体错误,如下:

image
可以看到,是我们在使用ARouter框架时产生的错误。最后问题定位到:使用阿里路由组件时,定义路径时,不能使用"-"。将项目中

    /**
     * 风控模块路由
     */
    public static final String ROUTE_RISK_CONTROL = "/risk-control/main";

改为

    /**
     * 风控模块路由
     */
    public static final String ROUTE_RISK_CONTROL = "/risk/control/main";

这样就好了

其他

在Mac中,如果使用gradlew找不到命令,可以先输入命令

chmod +x gradlew
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值