关于AAPT2 error: check logs for details 的问题分析定位与排查解决方法

关于AAPT2 error: check logs for details 的问题分析定位与排查解决方法

  • 现象描述
    • 1、排查
    • 2、定位
    • 3、解决

现象描述

在android studio的项目开发过程中,经常会遇到关于AAPT2 error: check logs for details 这种类似的问题。一般都是jar包冲突导致的,尤其是support包,但是每次解决的时候,要么是误打误撞搞定,要么是懵里懵逼的解决。再次遇到时候依然是一脸茫然的不知所措。

现提供一种排查、定位及解决的方法,为再次遇到此类问题提供一些解决思路和办法。屁不多放,上正文:

1、排查

在这里插入图片描述
首先看studio的编译日志,如果能从编译日志中看出具体冲突的jar包,就可以根据具体jar包找对应的模块进行进一步的排查分析了。

很不幸,有些情况下我们从编译日志中看不出具体的问题。那我们就进行下一步:既然是jar包冲突,那肯定是依赖的多个版本。

直接去android studio左侧的project栏中的External Libraries找那些有多个版本的依赖包,如下图
关于AAPT2 error: check logs for details 的问题分析定位与排查解决方法_第1张图片

2、定位

好的,第一步我们已经排查到了 有两个包是存在同时依赖了多个版本。但是,如果这两个包,我们在项目model中并没有找到多个版本呢?

那就可能是,我们项目中的依赖包内依赖了不同的版本。例如,modelA implementation 了一个第三方jar包,但是呢,这个第三方jar包内又implementation 了另一个版本的冲突包。

好的,那该怎么定位呢?向下看:
第一步:
androidstudio 有时会在build.gradle中直接爆红提示你:
关于AAPT2 error: check logs for details 的问题分析定位与排查解决方法_第2张图片
直接提示你这俩包的版本冲突了。但是懵逼的你还会一脸懵逼!
第二步:
进入android studio的 File - Project Structure - Dependencies - All Modules,

注意:一定要等这个Fetching Gradle build models 消失后再继续下一步!

关于AAPT2 error: check logs for details 的问题分析定位与排查解决方法_第3张图片
待Fetching Gradle build models 消失后,就能看到dependencies中会存在多个依赖的列表,点击列表,就能在最右侧的框框里看到这个依赖包是谁引入的。
关于AAPT2 error: check logs for details 的问题分析定位与排查解决方法_第4张图片

注意:
像图中的recyclerview-v7虽然没有显示多个版本号,但是你有没有发现:它的最后面,竟然没有版本号!(其实这也是存在冲突的,但是不知道为什么android studio没有显示出来。)
support-annotations存在两个版本,肯定是有冲突的。

3、解决

通过第二步我们基本确认了冲突的jar包,那解决办法有多个:
(1)最简单的就是修改版本号,保持一致。
(2)但有时我们无法依赖包的版本号,可以采用exclude排除语句:

implementation('com.example:some-dependency:1.0.0') {
        exclude group: 'com.android.support', module: 'recyclerview'
        exclude group: 'com.android.support', module: 'support-annotations'
}

各位看官、各位码友,如果博客能够解决你们在工作、学习中遇到的问题,还请给小弟点个赞,收个藏。您的鼓励是我继续下去的动力!感谢各位衣食父母!

你可能感兴趣的:(Android,studio,android,studio)