前言
最近在开发中频繁遇到org.gradle.api.tasks.TaskExecutionException: Execution failed for task这个问题,导致无法编译通过。这里我给出自己的解决办法。
分析
1.自定义属性
检查attrs.xml文件中有没有相同的属性名(我在编译的过程中会给出错误的提示):
- 重命名属性
- 提取属性,作为公共的属性
<attr name="text" format="string|reference" />
<declare-styleable name="Sample">
<attr name="text" />
</declare-styleable>
<declare-styleable name="Sample1">
<attr name="text" />
</declare-styleable>
2.属性名和系统自带的相同
这个我没有做深入的分析,我自己在引入一个第三方的控件时,自定义属性中有个textSize,然后编译的时候就报错了,然后排查,就推测应该是这个属性是系统自带的库中的属性相同了,导致冲突。
解决的办法是:建议在每个自定义的属性前加上declare-styleable的名称的缩写,以便区别。
<declare-styleable name="CustomVi