关于Andriod org.gradle.api.tasks.TaskExecutionException: Execution failed for task 问题及解决办法

  • Post author:
  • Post category:其他


今天打开AS,突然发现项目跑步起来了,报一堆编译错误,错误大致信息如下:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task(省略若干无用信息)

仔细看完之后,这一堆红色的错误信息,没有什么明显的收获。。。

解决步骤:

在terminal中输入如下命令,得到较为详细的信息

gradlew compileDebugSources

,仔细看了输出信息之后,发现(捡重点贴出来):

C:\Users\xxx\.gradle\caches\transforms-1\files-1.1\support-compat-26.1.0.aar\3b922a701778fe94e5fdb7afe6cca6bd\res\values-v21\values-v21.xml:14:5-18:13: AAPT: error: resource drawable/notification_action_background (
aka com.wdcloud.companyo2oplatform.qxzx:drawable/notification_action_background) not found.

F:\Android-Project\xxxx\android\xxxx\build\intermediates\incremental\mergeDebugResources\merged.dir\values-v21\values-v21.xml:301: error: resource drawable/notification_action_background (aka com.packagename:drawable/notification_action_background) not found.

说是没找到什么资源文件,可是,项目之前都是好的,啥也没动啊,怎么就少了呢?看到是caches下的,为缓存文件,于是就删除了该目录下的所有文件,重新编译,成功了。

网上有类似的问题,不少。有些问题,是比较容易看出来的,比如:中文路径、图片问题等等。

总体来讲,编译出错的话,解决问题的途径:

1、有明显问题提示的时候,直接修正即可;

2、无明显问题提示的时候,先把所有build\.gradle\.idea 等临时文件都删掉,重新编译;

3、第2步执行之后还是不行的话,terminal下 执行gradlew compileDebugSources,仔细查看输出的问题信息,从中找到线索;

对于我遇到的这种情况,因为涉及到了C:\Users\xxx\.gradle\caches,我猜测原因估计是:同时打开几个AS,有些没编译通过就关掉了,产生了缓存、临时文件等,下次再编译的时候,就对应不上了。这个时候,要手动删除一下公共目录下的C:\Users\xxx\.gradle\caches 缓存文件,重新编译生成就行了。

不知道哪位大神,对这一块有更深的认识,恳请不吝赐教!后面有时间,我也会深入了解下AS的编译全过程。

———–补充一个

gradlew assembleDebug --info



版权声明:本文为xiaojia7283原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。