一.问题描述
最近将android旧项目(sdk 版本为 25)升级到最新的 sdk 版本 29时,报了以下错误:Caused by: java.lang.RuntimeException: Manifest merger failed with multiple errors, see logs at com.android.builder.core.AndroidBuilder.mergeManifestsForApplication(AndroidBuilder.java:524) at com.android.build.gradle.tasks.MergeManifests.doFullTaskAction(MergeManifests.java:143) at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:106) at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
经过排查后,发现是因为最新的 android 版本中,将原来的 android.support.v4 等依赖包 升级为了 androidx 依赖包,而且 这两种依赖包不能共存,只能替换为统一的依赖包;
二.解决方法
将 Android studio 更新到最新稳定版本,将项目中的 support 依赖包转为
androidx 依赖;
右键单击项目名称,选择【refactor】–>【Migrate 头 AndroidX】,将会自动转换 support 依赖包 为 androidx 依赖包;