Android resource compilation failed( com.android.support冲突)

Android resource compilation failed
Output:  E:\workspace\favor\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2834: error: duplicate value for resource 'attr/layout_anchorGravity' with config ''.
E:\workspace\favor\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2834: error: resource previously defined here.

Command: C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\aapt2-3.3.0-alpha03-4818971-windows.jar\a1ffc6caf4b508853c09d1bf0b55ff09\aapt2-3.3.0-alpha03-4818971-windows\aapt2.exe compile --legacy \
        -o \
        E:\workspace\favor\app\build\intermediates\res\merged\debug \
        E:\workspace\favor\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml
Daemon:  AAPT2 aapt2-3.3.0-alpha03-4818971-windows Daemon #0
 

 

引入的第三方框架多了很容易到时版本冲突,总结了一下解决冲突的方案:

 

第一种,强制使用统一的版本号

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '27.1.1'
            }
        }
    }

configurations.all直接放在app build.gradle文件下,和dependencies同一级。

第二种,引入第三方支持时,去除第三方库中support支持
例如:api("com.afollestad.material-dialogs:core:0.9.5.0") {
        exclude group: 'com.android.support'
    }

第三种,使用编译器推荐的方法跳过相关代码段。

第四种,修改自己的版本或者修改第三方的支持库版本。这个比较麻烦。

第五种,如果values错误,看一定位到相应的行,有可能是item格式错误,androidstudio3.2之后校验比较严,如果是引入的插件,将插件下载下来,导入,修改错误部分即可。

以上建议使用第一种。

你可能感兴趣的:(android)