原文:https://blog.csdn.net/ZDF123654/article/details/81285995
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之后校验比较严,如果是引入的插件,将插件下载下来,导入,修改错误部分即可。
以上建议使用第一种。