当前位置:   article > 正文

解决TaskExecutionException: Execution failed for task(app:transformClassesWithDexForDebug)_execution failed for task ':app:transformclasseswi

execution failed for task ':app:transformclasseswithdexbuilderfordebug'. > j

前言

最近在开发中频繁遇到org.gradle.api.tasks.TaskExecutionException: Execution failed for task这个问题,导致无法编译通过。这里我给出自己的解决办法。

分析

1.自定义属性

检查attrs.xml文件中有没有相同的属性名(我在编译的过程中会给出错误的提示):

  1. 重命名属性
  2. 提取属性,作为公共的属性
<attr name="text" format="string|reference" />

<declare-styleable name="Sample">
    <attr name="text" />
</declare-styleable>

<declare-styleable name="Sample1">
    <attr name="text" />
</declare-styleable>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2.属性名和系统自带的相同

这个我没有做深入的分析,我自己在引入一个第三方的控件时,自定义属性中有个textSize,然后编译的时候就报错了,然后排查,就推测应该是这个属性是系统自带的库中的属性相同了,导致冲突。

解决的办法是:建议在每个自定义的属性前加上declare-styleable的名称的缩写,以便区别。

<declare-styleable name="CustomView">
        <attr name="cv_text" format="string"/>
        <attr name="cv_text_color" format="color"/>
    </declare-styleable>
  • 1
  • 2
  • 3
  • 4

3. 命名空间重复引入

解决完上面的问题后,我再次编译我的项目的时候,发现又报了相同的错误。经过排查是因为xml文件中的tools命名空间引入了两次(不会提示错误),于是去掉了一个,最终编译成功。

总结

以上就是我遇到的出现TaskExecutionException的情况以及自己的解决办法。大家在开发中还是要养成良好的编码习惯,做好规范处理,避免出现一些不必要的问题。如果出现了,不要慌张,根据修改的内容进行定位、推测、排查、总结。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/306666
推荐阅读
相关标签
  

闽ICP备14008679号