判断报错类别
Android Manifest merger failed with multiple errors , see logs 主要分为俩类(个人遇见的情况):
- 与引入的其他库中的Manifest部分属性冲突
- Androidx和Android support库不能共存
主要方法是 将导航栏由Android模式切换到Project模式,打开External Libraries,看各个引入架包的命名,如果既有Androidx又有support就是第二种情况。
与引入的其他库中的Manifest部分属性冲突解决方法
- 先看ide工具有没有提供相应的解决办法的建议如:
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 <application> element at AndroidManifest.xml:36:5-364:19 to override.
如果有就先根据建议修改,一般是在某个标签下添加某个语句,上面这个例子就是在 下 添加 tools:replace=“android:appComponentFactory” 语句,编译一把,基本都能解决问题。
- 如果上面解决不了,就要去找具体问题,但是log打印的量巨多怎么搞呢?参考个人解决思路:
打开AndroidManifest文件——>选中文件左下角 Merged Manifest 标签,在视图的右侧就可以看到具体的报错信息。
Androidx和Android support库不能共存
解决方法:
- 在gradle.properties文件中加上
android.useAndroidX=true
android.enableJetifier=true
- 如果你参考ide给的建议在AndroidManifest中部分标签下加了例如
tools:replace="android:appComponentFactory"
的语句都给删掉。
3. Migrating to AndroidX
- 首先将build tools更新到3.2.0,gradle更新到4.6,依赖库统一更新到28.0.0
- 然后选择工程右键→Refactor→Migrate to Androidx…(注意弹出的对话框Migrate按钮是在右边)
- 在左下方对需要重命名的文件进行Do Refactor
编译一把,搞定!!!!!!!