当前位置:   article > 正文

androidx——Manifest merger failed : Attribute application@appComponentFactory_manifest merger failed : attribute application@nam

manifest merger failed : attribute application@name at androidmanifest.xml:1

最近公司有个小项目(安卓端一人开发)比较急,于是把项目传上git准备回家没事做的话也可以搞搞。然后上传项目的时候怕两部电脑的android sdk版本不同带来的不必要麻烦,忽略掉了一些配置上的东西,例如下图红框的地方,因为AS打开项目的时候会根据本地android SDK版本自动生成这些文件:
在这里插入图片描述

然而到家打开项目,却报错了。。。

在这里插入图片描述

写到这里应该有同学发现博主撒币。。。不过没事,撒着币也要写完这贴子,因为解决问题的过程中,百度了很多,看到也有很多人遇到了这个问题,有些解决办法并不奏效或者出现了新的错误。

1.先是看到很多提出这种方案的帖子:

android:appComponentFactory=""
tools:replace="android:appComponentFactory"
  • 1
  • 2

好的,加上后出现了另一个问题:

在这里插入图片描述
What?androidx的引入和Support库重叠了?可项目中只引入了androidx呀。。。这什么情况?

2.无奈之下,只能拿其它项目来对比一下,当初是不是忽略了什么重要配置导致的这个错误,因为前面公司的电脑编译项目是没有问题的。于是先删除了方法1中添加的两个属性,然后随便打开了一个项目看了一下。。。果然!少了这个文件!这哪个撒币动了我的项目!(还有谁?。。)

在这里插入图片描述
顺带说一下,这是一个项目用来配置全局键值对数据的文件。里面的内容是:

在这里插入图片描述
好了,复制过来,再重新编译了项目。沃德天!还是报一开始的那个错误。。。

3.继续逛帖子,在StackOverflow里看到一个大神这么说:

https://stackoverflow.com/questions/55217992/manifest-merger-failed-attribute-applicationappcomponentfactory-androidx

在这里插入图片描述

咋一看有点儿复杂,然后又看到下面一层楼:

在这里插入图片描述

于是,远程看了一下公司电脑里的项目,发现的确少了这两个配置声明。那么这两个有什么用呢,其中一个靠字面意思可以get到是声明使用androidx,另一个呢?看看这位大神的解释:

https://www.jianshu.com/p/41de8689615d

在这里插入图片描述

好了,这次复制了原项目的gradle.properties过来编译成功了。。。

在这里插入图片描述

那么刚才复制过来的gradle.properties为何会少了这两个配置呢,原因很简单。。。那是旧的项目,压根就没用到androidx。。。

好了,本屌撒完币了,希望能给其他遇到相似问题的小伙伴带来一点帮助。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/824142
推荐阅读
相关标签
  

闽ICP备14008679号