- 导入新项目时,bulid过程中报错
Manifest merger failed with multiple errors, see logs
- 查看问题,没有发现error
org.gradle.api.tasks.TaskExecutionException: Execution failed for task '...:processDebugManifest'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:103)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
at ...
- 使用
gradlew processDebugManifest -stacktrace
命令查看详细日志,其中processDebugManifest 就是刚刚上面说bulid出现问题的那一步。
> Task :app:processDebugManifest FAILED
D:\AndroidProjects\xxx\app\src\main\AndroidManifest.xml:7:5-23:19 Error:
tools:replace specified at line:7 for attribute android:appComponentFactory, but no new val
ue specified
D:\AndroidProjects\xxx\app\src\main\AndroidManifest.xml Error:
Validation failed, exiting
- 意思是设置了 android:appComponentFactory,但是没有设置具体的值
- 添加
android:appComponentFactory="android.support.v4.app.CoreComponentFactory"
,重新Rebuild还是报错
问题原因:查了资料,是因为Android support和Androidx库不能共存
解决方法
将Android support库转换为Androidx库
- 将build tools更新到3.4.1,如下:
dependencies {
classpath 'com.android.tools.build:gradle:3.4.1'
}
- gradle更新到5.1.1,如下:
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
- 依赖库统一更新到28.0.0,如下:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.airbnb.android:lottie:3.0.3'
}
这一步非常重要,不然会导致第二步转换不成功。
- 接下来,Refactor→Migrate to AndroidX…
- 备份一下
- 选中所有需要重命名的目录,Do Refactor
就可以成功运行了!!
参考文章:https://blog.youkuaiyun.com/lovedou0816/article/details/90481946