不知道大家碰到过android studio 中图片相关的错误,我是将之前在eclipse上开发的项目移植到AS后发现一些错误,所以我把碰到的问题整理一下,做个总结。
1.图片格式更改过导致的无法正常编译
意思就是如果之前将一张jpg格式的图片 自己改为.png就会报错,因为as对图片要求很高,检测的严格。
大家可以看这篇文章com.android.tools.aapt2.Aapt2Exception: AAPT error: check logs for details_再见孙悟空的专栏-CSDN博客
最好的解决办法是将图片找出来删除掉。
还有一种网上最常见的解决方案
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
在build.gradle加入上面这两句,意思是 禁止gradle检查png图片的合法性。
android {
compileSdkVersion 19
buildToolsVersion "23.0.1"
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
defaultConfig {
minSdkVersion 10
targetSdkVersion 19
}
类似这样,加上能解决一部分问题。但是还有一些特殊的情况,即使加上上面这两句代码也没有用
2.拷贝demo 代码的时候 R文件错误导致出现这个问题。
类似这种,我们拷贝其他项目文件的时候有时候可能会忽略这个,没发现 ,编译的时候不会报错,运行报错,当然这个和图片没啥关系,顺便提一下。
3.还有就是 和.9图片相关的错误
类似这种的,都是.9图片本身有问题,导致的异常。
android studio里面本身集成了可以打开.9图片的编辑工具,不需要像eclipse那样去sdk下面去找draw9patch.bat了。
1. 如果一张图片不是.9图的话,图片的后缀名不要带有XX.9.png,这样在androidstudio上是非法,会报错。
2.如果一张图片是.9图,但如果这张图片不是完整的.9图,也就是说此图没有四个边的描点, Androidstudio仍然会报错。 报错内容如下:
Cannot Resolve Symbol R.(该错误下所有R会变红,当然所有R变红还有很多其他原因,比如xml、style、value、colors中存在错误都会出现该现象,而在Android Studio中是 不会提示具体那个文件夹的,需要自己检查)
AAPT err: ERROR:9-patch image xxxx(该错误并不会被编译器标红,这一点很不友好!)看到这一提示就证明是.9图片的问题了。
3.android studio 编辑.9图片界面选项
Patch scale: 用来缩放右边预览区域的大小
Show lock: 当鼠标在图片区域的时候显示不可编辑区域
Show patches: 在编辑区域显示图片拉伸的区域
Show content: 在预览区域显示图片的内容区域