记:AAPT2 error: check logs for details

原本好好的项目,去厕所一趟出来,就给我报这个错:AAPT2 error: check logs for details 。真的是白色不得其姐啊!!刚开始遇到这个错误,在网上看到了很多惊讶到掉下巴的答案。其中一个答案让我记忆犹新,半夜都能笑醒。居然说是.9图的问题,让把.9后缀给去掉。WTF???坑人不带这样玩的吧。为了帮助遇到类型问题的小伙伴们,特此写下来碰到这样得问题怎么去解决。

1、首先检测在编写代码的时候,xml文件书写的是否正确。

2、如果不是资源问题的问题,那么可以尝试,“如果有问题可以退回到之前的版本,打开gradle.properties,添加如下内容”

android.enableAapt2=false。但是我想表达的是,作为一个有追求,有理想,有干劲的程序员。让我回退???我宁愿卸载AS。而且这个方法压根没球用啊。根据谷歌的提示:

选项“android.enableAapt2”已被弃用,不应再使用。
使用“android.enableAapt2=true”来删除这个警告。
它将在2018年底被移除。

很明显,我们使用“android.enableAapt2=false”来关闭AAPT2是行不通的,这个方法已经过时了,关闭之后Android Studio告诉我们要把它打开,这样就陷入了一个死循环,所以我们还是需要找到问题的根本原因在哪里才能解决。

3、在网上搜索了很多资料:终于找了一个比较靠谱的方法:在命令行中进入项目的根目录,或者可以在Android studio的Terminal中直接操作也可以,然后敲入一个命令:gradlew compileDebug --stacktrace。第一行提到了一个资源异常“ResourceException”

出现如下问题:虽然到底是那里出现了问题并不明显。于是尝试把命令改为:gradlew compileDebugSources --stacktrace -info 

再次执行的时候,居然发现了中文。第一感觉是这里不正常。

4、于是乎:尝试着修改gradle的缓存目录:修改办法如下:这个可以通过android studio的设置中找到gradle,配置另一个非中文目录来缓存。

File -> Settings -> Build, Execution,Deployment -> Gradle

进入这个页面找到“Service directory path”项,将里面的路径换到一个非中文路径就好了(切记,不要把之前的文件拷贝到这里。)然后bulid一下。完美解决

5、网上还有另外一个解决的办法:有兴趣的可以去尝试下指定你的项目使用较新的gradle 插件:在build.gradle(Project)中修改Gradle版本到3.2.0-alpha11或更新版本就可以了

6、具体的原因求教了一个行业里面比较牛逼的大佬。他给的答复是:“目前的这种非AsciⅡ的确是AAPT2和Gradle插件的一个bug,但现在已经被修复,只是Android Studio还未更新成这个被修复的版本。”

最后提醒一下:这种国外的软件,不单单是AS,千万不要存在中文的路径。祝大家痛并快乐着。

你可能感兴趣的:(BUG,gradle)