我在依赖中添加了几个依赖,如下:
implementation 'androidx.work:work-runtime:2.9.0'
implementation 'com.alibaba:arouter-api:1.5.2'
implementation 'com.alibaba:arouter-annotation:1.0.6'
annotationProcessor 'com.alibaba:arouter-compiler:1.5.2'
然后报了一坨错误,如图
它提示
Attribute application@appComponentFactory value=(androidx.core.app.CoreComponentFactory) from [androidx.core:core:1.12.0] AndroidManifest.xml:28:18-86
is also present at [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91 value=(android.support.v4.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:5:5-28:19 to override.
Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
还有多个错误
这样其实并没有什么吊用,要我们添加一个tools到AndroidManifest.xml中,其实大可不必。
将以下几行添加到gradle.properties文件
android.useAndroidX=true
android.enableJetifier=true
删除tools:replace="android:appComponentFactory"
android.enableJetifier=true
是一个用于 Android 项目的 Gradle 属性,它的主要作用是帮助将旧的支持库(Support Library)依赖迁移到新的 AndroidX 包。
对了,记得检查build.gradle
添加一下这行代码:
javaCompileOptions {
annotationProcessorOptions {
arguments = [AROUTER_MODULE_NAME: project.getName()]
}
}
javaCompileOptions
配置块允许你为 Java 编译过程设置选项,其中包括注解处理器(Annotation Processor)选项。
然后我就运行成功了。