Android 编译报错
Execution failed for task ':app:checkDebugDuplicateClasses'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
> Duplicate class android.support.v4.app.INotificationSideChannel found in modules core-1.9.0-runtime (androidx.core:core:1.9.0) and support-compat-27.1.1-runtime (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.app.INotificationSideChannel$Stub found in modules core-1.9.0-runtime (androidx.core:core:1.9.0) and support-compat-27.1.1-runtime (com.android.support:support-compat:27.1.1)
在gradle.properties中加入
android.useAndroidX=true
android.enableJetifier=true
sync
android.enableJetifier
是一个 Gradle 属性,用于在 Android 项目中启用 Jetifier 工具。Jetifier 是一个用于转换支持 AndroidX 的库的工具,它可以将旧的支持库(Support Library)依赖转换为对应的 AndroidX 库依赖。
在 Android 项目中,如果你使用了旧的支持库依赖(如 com.android.support:appcompat
),而你的项目迁移到 AndroidX(Android 扩展库)并使用了 AndroidX 库依赖(如 androidx.appcompat:appcompat
),则需要使用 Jetifier 工具确保这些库能够兼容。
android.enableJetifier
的作用是告诉 Gradle 构建系统在构建过程中使用 Jetifier 工具,将旧的支持库依赖转换为对应的 AndroidX 库依赖。当你将该属性设置为 true
时,Gradle 会自动在构建过程中应用 Jetifier 工具进行库转换。
使用 Jetifier 的好处是,它可以使你的项目与 AndroidX 库兼容,无需手动修改代码或更改依赖项。这样,你可以使用最新的 AndroidX 功能和库,并与现有的支持库项目保持兼容性。
可以在项目的 gradle.properties
文件中设置 android.enableJetifier=true
来启用 Jetifier 工具。默认情况下,该属性是被禁用的(false
)。
发表评论