More than one file was found with OS independent path 'AndroidManifest.xml'
AGP升级 3.5.0+
你组件化项目升级由原本的gradle 插件版本 3.4.2 升级到了 3.5.3, 执行assembleRelease。的时候报了一个错误:
More than one file was found with OS independent path ‘AndroidManifest.xml’
修复
做了很多各方面的分析, 依然不得解. 因为我降低到 3.4.2 的时候, assembleRelease是正常的.
这里也有遇到了相同的问题,升级 AGP遇到的问题
得知的是一个 bug. 去查了一下: Google Issue Tracker
得出的结论就是:
换成 module 形式进行依赖或者打包上传到 maven 私服进行依赖
果然试了一下, 确实两种方式都有效.
组件化排查此类问题
What went wrong:
Execution failed for task ‘:module_name:mergeReleaseJavaResource’.
A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
More than one file was found with OS independent path ‘AndroidManifest.xml’
可以根据 module_name 对依赖的本地 aar 进行处理
类似的错误
What went wrong:
Execution failed for task ‘:module_name:mergeReleaseJavaResource’.
A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
More than one file was found with OS independent path ‘res/values/values.xml’
res/values/values.xml这个错误是组件化项目合并的时候资源有冲突.
大部分是资源命名错误导致. 对项目很熟悉的开发人员, 可能不会去添加 module 资源前缀,但是最好加上, 因为有可能添加了 color 或者 string 等的时候, 名字重复, 那么就会报这个错误.
就是方式就是排查出基础 module和其他依赖的 module 资源命名是否有冲突.
或者 module 的 build.gradle 里面都加resourcePrefix
android {
......
defaultConfig {
......
resourcePrefix 'xxxxxx'
}
....
}