赞
踩
最近在开发中频繁遇到org.gradle.api.tasks.TaskExecutionException: Execution failed for task这个问题,导致无法编译通过。这里我给出自己的解决办法。
检查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>
这个我没有做深入的分析,我自己在引入一个第三方的控件时,自定义属性中有个textSize,然后编译的时候就报错了,然后排查,就推测应该是这个属性是系统自带的库中的属性相同了,导致冲突。
解决的办法是:建议在每个自定义的属性前加上declare-styleable的名称的缩写,以便区别。
<declare-styleable name="CustomView">
<attr name="cv_text" format="string"/>
<attr name="cv_text_color" format="color"/>
</declare-styleable>
解决完上面的问题后,我再次编译我的项目的时候,发现又报了相同的错误。经过排查是因为xml文件中的tools命名空间引入了两次(不会提示错误),于是去掉了一个,最终编译成功。
以上就是我遇到的出现TaskExecutionException的情况以及自己的解决办法。大家在开发中还是要养成良好的编码习惯,做好规范处理,避免出现一些不必要的问题。如果出现了,不要慌张,根据修改的内容进行定位、推测、排查、总结。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。