前几天在网上买了郭霖的《第一行代码ANDROID》,然后按照教程的例子开始一步步的学习,不明白的就网上进行结果查找。今天在试着运行编辑好的使用RecyclerView强功能列表模拟微信信息的发送和接受时候,出现了莫名其妙的问题。
其中设计到了draw-9-patch图的问题。
(1)当前Android2.2版本以上将draw9patch.bat这个工具集成到了编辑器中,只需要选中资源文件夹Res下面的对应PNG图片,右键——创建9图就可以自动生成9图格式的文件,然后自己在拉伸图,进行编辑。将原来的图进行覆盖。
(2)编译运行程序Message提示了两个错误
- app:mergeDebugResources FAILED
- Error:Execution failed for task ':app:mergeDebugResources'. > Error:Java.util.concurrent.ExecutionException: com.Android.ide.common.process.ProcessException:
开始我在网上查找解决方法,第一次直接查找的是1的关键内容,发现说是资源文件可能出错了,图片文件丢失什么的,还学习到了自己编译项目,打印调试信息,再追踪错误的方法。参加博客:。利用gradlew -v开始下载编译构建工具包。等待了大概5分钟左右下载完成整个gradle项目。然后开始输入对应的查看编译日志命令
gradlew -v
gradlew compileDebug --stacktrace --info
gradlew compileDebugSources --stacktrace --info
gradlew clean
发现错误点还是提示这个错误:
Error:Java.util.concurrent.ExecutionException: com.Android.ide.common.process.ProcessException
果断认为此时编译调试信息也应该无能为力。再次在百度中输入准确的错误信息,发现果然有同样的问题出现。参加博客等。
根据博主大人的说法:
新的Android Studio对资源文件有非常严格的审查检验,文件名和文件格式一一对应,真实存在。特别对9图格式的文件必须添加4个边缘,处理好边缘的问题。还可以通过编译设置,禁止gradle检查PNG图片的合法性。这个在我这里没有成功。
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
(3)我的处理方式
因为有个9图背景是黑色的,所以边缘也不好处理,看不清楚,所以果断删除有问题的9图。发现之前MainActivity的错误不见了。R变成了可以引用使用的变量了。重新编译运行程序。程序执行正确。
总结下:
谷歌最新推出的开发工具Android Studio 2.2,使用还算方便,性能要求比较高。有些问题也是使用中才能发现。通过自我实践,一步步学习,还是能碰到不同的问题,代码并不会像想象中一步成功通过构建。
这里我学习到错误发生的原因,知道了通过在终端Terminal输入对应的构建命令gradlew 来定位错误,以及直接根据Message的提示信息调试错误,查找原因。至于图片的制作,还是交给专业美工,不然只能自己不断试验效果了。