Caused by: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details

打开支付宝首页搜索“623171577”领红包,每天都能领哦~

今天把几年前的老项目导入Android studio3.0后报错,报错截图如下:

看了一下报错内容,一时不知哪里出错,后来又点击了一下上图红框处的按钮,查看了一下gradle console。

于是把红框处的日志百度了一下,发现解决办法很简单,就是在项目的gradle.properties中添加一行代码就行了。
 

android.enableAapt2=false

就添加上面这行代码就行了。

 

但是奇怪的是,我的这个老项目连gradle.properties这个文件都没有,这怎么添加这行代码啊。

后来,灵机一动,从别的项目中拷贝一份gradle.properties过来,然后粘贴到我这个老项目的根目录下,并把android.enableAapt2=false 这行代码粘贴进去就行了,这样bug就解决了。

 

因为Android Studio升级到3.1.4以后,在gradle.properties中添加android.enableAapt2=false 已经不能解决问题了。如果你加了,那么控制台就会提示你:

上图翻译成中文就是android.enableAapt2是不被赞成的,并且也不该再使用了,而且android.enableAapt2将会在2018年底被移除。

所以说AS的提示还是比较人性化的,它是在告诉我们不要再使用android.enableAapt2=false这个属性了,那我们应该怎么解决这个报错问题呢?

其实,根据我长时间摸索的出来的经验,AAPT2 error这个问题一般是.9图片造成的,就是9patch图片有问题造成报错的,9patch图片是andriod app开发里一种特殊的图片形式,文件的扩展名为:.9.png。

如上图所示,如果遇到AAPT2 error这个问题,你打开res下的drawable目录,查看里面的.9图片,然后像我上面截图那样选中Show bad patches,就会看到那个.9被红框圈出来了,这是AS在提示你,你的这个.9图片是有问题的,所以编译不通过。造成这个bug的原因是这样的,你的这个项目可能是一个比较老的项目,以前是用Eclipse开发的,Eclipse对于.9图片的审查不是很严格,所以即使.9图片不不合格也不会报错,但是AS对于.9图片的审查比较严格,有错误就没法通过,所以用AS打开这个老项目,就会报AAPT2 error这个错误。所以这个时候,把这些报错的.9图片重新绘制一下就好了。

怎么绘制.9图片呢?如果对于.9图片不太熟悉,麻烦去百度一下Android Studio如何修改.9图片。会有不少相关的文章的。

我这里给大家简单介绍一下,如何解决.9图片报错的问题:

熟悉.9图片的开发者都知道,.9图片的左边框和上边框都是有个黑点的,这个黑点的作用就是黑点所在区域的像素可以无限复制,使得图片得以拉伸,而刚刚.9图片报错的原因就是左边框和上边框没有这个黑点,所以才会报错。所以这个时候大家要在左左边框和上边框绘制上黑点,这样就不报错了。

如上图所示,如果你的AS是3.1.4,那么在左边框和上边框用鼠标左键点一下,就能出现一个黑点,这样就不报错了。点的时候要注意,我们需要的是黑点,不是黑线,大家尽量不要用黑线。如果,你drawable目录下.9图片比较少,那么很快就能改完了,但是如果有一大堆.9图片,那就要一张一张该下去了,都改完了,运行一下,如果还是报错,可能是你落下一两张.9图片没有改过来,要再次检查一下。

 

另外还有一个原因也会造成AAPT2 error这个错误,就是res的values目录下有style文件,这个文件有时也会造成AAPT2 error这个错误。

以上都是本人的经验总结,是能够彻底解决AAPT2 error这个问题的,网上面有很多文章都是让你在gradle.properties添加android.enableAapt2=false。这类文章大家就不要看了,已经过时了,要想彻底解决这个问题,就应该像我说的修改.9图片,这才是真正的解决之道。android.enableAapt2=false这句话的含义就是让AS关闭AAPT2的审查,所以说android.enableAapt2=false是一种自欺欺人的解决办法,它并没有解决bug,而是把bug隐藏了。

如果大家有什么问题或者更好的解决办法,麻烦在下面评论一下。


如果本文对你有帮助的话,麻烦在左侧点个赞,谢谢支持!

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值