今天编译的一个旧项目,该项目是用的Gradle build tools 版本是2.2.0,我当前用的版本是3.2.0,。打开工程正常编译后可以安装APK运行,改动了一些代码后,重新编译提示出现以下错误:
aapt.exe finished with non-zero exit value 1
首先重新看了下改动的代码,编译器并没有提示错误或者警告,然后怀疑是缓存导致的,那就清除后重新编译下试试看吧。
“Build”-> “Clean Project”
“Build” -> “Rebuild Project”
还是不行,万一没清干净呢?索性重启了Android Studio,重新编译,还是相同的提示。难道是Android Studio 3.2.0 向下兼容不好?,于是升级了旧项目的Gradle build tools 版本为3.2.0。升级旧项目中需要注意的问题请看:Android studio 3.2 升级详解及Gradle配置,然后重新编译,虽然还有错误,但错误已经不是finished with non-zero exit value 1 了,定位到错误所在,发现是strings.xml资源文件中一个改动后的字符串文本中存在【’】单引号,需要加反斜杠转义。emmm,实在是无语,折腾了这么半天,原来就这么简单解决了。但是为什么之前编译器没有错误或者警告提示呢?,怀疑可能是Android Studio的兼容性问题。
其他的一些解决方案,虽然没有解决我遇到的问题,但还是记录下来,方便以后排错:
- 对图片的审查严格。解决思路:把jpg格式的图片全部替换为png格式的图片
- 添加的包重复。解决思路:把build.gradle添加的重复的包去掉
- 添加的代码中存在某些包没有引用进来,找到这个包,然后添加引用。