转发如下:
https://blog.csdn.net/willba/article/details/83512363
昨天在开发一个项目时,在Android Studio中编译时,gradle编译之后出现了如下错误:
1Error:Execution failed for task ':samples-simplevideowidget:processDebugResources'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'E:\Android\SDK\build-tools\23.0.1\aapt.exe'' finished with non-zero exit value 1
我按照以上方案一一检查,还是未能解决,于是只能自己动手排查原因了!
1.定位错误点
在项目root路径,实际上是控制台Terminal下也可以输入命令,命令行输入:
gradlew processDebugResources --debug
然后项目开始编译,屏幕上输出大量编译Log信息,从Log中找到了输出的出错信息:
1org.gradle.process.internal.DefaultExecHandle] Changing state to: FAILED
2,org.gradle.process.internal.DefaultExecHandle] Process ‘command ‘E:\Android\SDK\build-tools\23.0.1\aapt.exe’’ finished with exit value 1 (state: FAILED)
3,org.gradle.api.Project] Unknown source file : ERROR: In ListItemLinearLayout, unable to find attribute singleLine
4,org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ‘:samples-simplevideowidget:processDebugResources’
5,E] [class org.gradle.TaskExecutionLogger] :samples-simplevideowidget:processDebugResources FAILED
从上述Log信息,我们可知出错点是ERROR: In ListItemLinearLayout, unable to find attribute singleLine,那么肯定是attrs文件的ListItemLinearLayoutstyleable出错了。
2. 错误原因
经过上述分析,我们进入attrs.xml文件,找到ListItemLinearLayout,如下所示:
1,
2,
3,
可以看出singleLine没有对应的format属性,确定singleLine没有在代码中使用之后,将此属性删掉。
方法2
“Process 'command 'D:\SDK\build-tools\27.0.3\aapt.exe'' finished with non-zero exit value 1”
在网上都是在说是视图出现问题了,但是说真的,如果去一个个检查XML视图真的是一件很神奇的事情。
采取build的方式,之后一些详细信息就会在Run里面。会直接定位到你的XML的行数和字符数。