今天,我遇到了一个问题,感受下(因为已经解决,所以我摘抄了网上几乎一样的错误信息):
Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to element at AndroidManifest.xml:5:5-19:19 to override.
就这个问题我搞了一天,谷歌百度各种方法试了个遍,reset cache,更改gradle插件版本,增加androidx,全没用!废话不多说,依旧说我奇葩的解决方案,要其它正常解决方案请上stackoverflow或访问 https://github.com/material-components/material-components-android/issues/193 :
1. 打开你的project目录,查看External Libraries,如果在里面没有发现androidx包,请继续谷歌百度,我的方法不适合你
2. 检查是否存在androidx包,因为androidx和android support库不能共存,所以,你得抛弃androidx,因为现在没有大量使用androidx,基本很少第三方库没使用到或者更新到支持androidx,所以,果断弃了,那么问题来了,如何删掉androidx包
3.检查自己使用的第三方库
如何检查?
右键点击上图的android[wifigo]项目文件,然后有个Load/Unload Module选项,点击之后,出现各种你依赖的第三方库,然后,一个个unload,每次unload之后检查External Libraries中的androidx包文件是否已经消失,如果已经消失,说明就是这个包的问题,然后找这个包的github地址,看下自己是否为最新版的依赖库,我的解决方法是更新了第三方库版本,并且能在issues中找到相同问题的人,如果更新后还是出错,在issues里面查找解决方法,如果没有,请节哀...