AAPT2 error: check logs for details stackoverflow
错误场景
AS版本:3.2
gradle插件版本:3.1.3
support版本:23.4.0
此项目2018年9月份封版之后就没有再动过了,又开启了新的项目。直到这次国庆节过后,老项目有有了新的需求,需要迭代一个小的版本,于是需求评审完成之后便准备在项目上拉新分支准备开发,奇葩的是项目刚一打开就报错了,报错信息如标题:
AAPT2 error: check logs for details stackoverflow
解决方案
去网上查了半天,大概知道这个AAPT2是一个资源类的检查工具,用来检查资源之类的有没有错误的,而且大家解决问题的方法也是五花八门,总结起来有一下几点:
1、设置enableAapt2=false
有小伙伴说禁用aapt2的检查就可以了,具体禁用方法:
在gradle.properties中加入一行代码:android.enableAapt2=false
不过该方式目前我尝试是不行的,提示必须开启此项检查,此方式无效!!
2、中文路径问题
有小伙伴说自己的问题经过筛查发现是=Gradle的 路径中有中文导致的,设置一个新的纯英文路径之后解决了问题,设置方法:
File–>Setting–>搜索Gradle–> Gradle home/Service directory path
看这两个路径中是否有中文,有的话可以尝试一下,我的不是这个问题!
3、Instant Run
有的小伙伴通过关闭Instant Run 解决该问题,我的不是这个问题!
入口:File–>Setting–>搜索Instant Run–>取消勾选
4、support包版本冲突
此项是我的项目遇到的问题,具体排查方法:
首先看自己的app的build.gradle中的support包依赖的版本,有没有列如appCompat-v7:21.+之类的用法,如果有的话尽量改成具体的版本号。
其次检查第三方依赖库,看是否有三方依赖库的版本指定的是:latest.release,如果有,很有可能是该包出的问题,修改latest.release为具体的版本号,可解决问题。
我的就是一个PhotoView的三方库升级导致的,我去github看到了改库刚升级了compile版本到28并且使用了新的support库androidx,所以才导致了该问题。修改成2.2.0版本之后问题就解决了。
com.github.chrisbanes:PhotoView:2.0.0
此外,在解决问题的过程中也发现了一篇讲解support包冲突场景和解决方法的文章,讲的比较深入,大家有兴趣的可以看看
文章链接:https://www.jianshu.com/p/a492bf61c0e6