这个页面将用于记录我在使用gradle的过程中遇到过的一些问题,有些可能是未解决的问题,如果有哪位大神知道解决方案,可以给小弟支几招~
描述:其实是我想在gradle命令中运行一个protoc命令,用于生成protobuffer的代码,protoc已经安装,并可以在系统终端中正常执行。 代码如下: task autogen(type : Exec) { File file = file(‘../lib_protocols/build/generated/source/autogen’); if (!file.exists()) { file.mkdirs() } commandLine ‘protoc’,’–java_out=../lib_protocols/build/generated/source/autogen’,’./autogen/Racecar.proto’ }
运行提示错误如下:
:lib_protocols:prepareComAndroidSupportAnimatedVectorDrawable2321Library (Thread[Task worker Thread 2,5,main]) completed. Took 0.046 secs.
FAILURE: Build failed with an exception.
A problem occurred starting process ‘command ‘protoc’’
Try: Run with –debug option to get more log output.
BUILD FAILED
问题原因:暂时未查明,猜测是gradle命令行运行的环境和系统的终端不同,protoc命令并不在gradle命令行环境中。
解决方案:期待大神指教~
描述:自定义的Task,运行过一次后,一直提示UP-TO-DATE,然后就不在跑Task里面的逻辑了
原因:经过查明,Gradle Task的生命周期分为initialization(初始化)、configuration(配置) 和execution(运行) 。Task可以定义Input和Output,Gradle在执行时会比对Input和Output,如果两者都没有改动,则会认为该Task是最新的状态,就不会执行了
解决方案:根据具体情况设置Input和Output,可以参考下面的这篇文章,适当的设置TaskOutputs.upToDateWhen()
,便可满足需求了。
http://wiki.jikexueyuan.com/project/gradle/detailed-task.html
描述:简单描述
原因:简述原因
解决方案:简述方案…
More