相信很多小伙伴在编译工程的时候会遇到这个错误,没事,我们看看错误详情是什么
结果点开来看
这。。。这是什么瞎几把玩意。搞得老子云里雾里???
于是,你就赶紧面向百度编程,一顿混乱操作后得到的答复是
添加tool:replace吧
整个工程清理一下吧
重新rebuild吧
删除provider.xml吧
把Android studio重启吧
把AS卸载了吧
放弃Android学Java吧
哎哎哎,别划走啊
我讲重点了
其实,你在网上找的那些之所以没卵用,不能解决的问题,那是因为这个本身就是有多个问题的
有点云里雾里,其实很简单,就是Android会将你的主module(也就是app)和子module(这个一般是library)合并,你仔细看,他们都有一份AndroidManifest.xml,那么在合并的时候,如果有相同字段,你让编译器选哪个
说说我的错误吧
我app的AndroidManifest.xml已经配置了android:name="com.qinlai.live.application.BaseApplication"
,而我的子module也配置了android:name="BaseApplication"
,结果编译器不知道最终合并的AndroidManifest 要选择哪一个,因此出现冲突
那说说要怎么查找这个错误
可以在Terminal里敲这行命令
gradlew processFanweDebugManifest --stacktrace
之后看控制台信息
其他的大概也是这个道理,有的是android:theme,有的是android:provider,这个看你项目情况,反正就是有相同字段导致冲突,这个你具体看,照搬网上解决方法是没用的
一般这种情况多发生在导入一些第三方库,他也是一个module,那么他可能在AndroidManifest.xml中有些字段会和其他人的有冲突,合并时编译器就不知道该选哪个,解决方法有两个
要么觉得无关紧要就删掉,要么配置tools:replace
反正不冲突就好,具体怎么配继续面向百度,实在不行就转行吧