我正在尝试在我的 flutter 项目中进行 ./gradlew clean 构建。这是发现的错误。
* What went wrong:
Execution failed for task ':app:checkDebugDuplicateClasses'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
> Duplicate class com.mapbox.android.core.permissions.PermissionsListener found in modules common-24.8.0.aar -> jetified-common-24.8.0-runtime (com.mapbox.common:common:24.8.0) and mapbox-android-core-2.0.1.aar -> jetified-mapbox-android-core-2.0.1-runtime (com.mapbox.mapboxsdk:mapbox-android-core:2.0.1)
Duplicate class com.mapbox.android.core.permissions.PermissionsManager found in modules common-24.8.0.aar -> jetified-common-24.8.0-runtime (com.mapbox.common:common:24.8.0) and mapbox-android-core-2.0.1.aar -> jetified-mapbox-android-core-2.0.1-runtime (com.mapbox.mapboxsdk:mapbox-android-core:2.0.1)
我添加了
configurations.all {
resolutionStrategy {
force 'com.mapbox.common:common:24.8.0'
}
}
在 gradle.build 应用程序根目录中。但我认为它不起作用,因为错误仍然存在。
您的项目中涉及 Mapbox 库的这种相互冲突的依赖关系。具体来说,类 PermissionsListener 和 PermissionsManager 都存在于 com.mapbox.common:common 和 com.mapbox.mapboxsdk:mapbox-android-core 中。当两个库依赖于同一模块的不同版本时,通常会发生这种冲突
修改您的 app/build.gradle 以排除导致冲突的依赖项之一
configurations {
all {
exclude group: 'com.mapbox.common', module: 'common'
}
}
或者,排除特定模块
dependencies {
implementation ('com.mapbox.mapboxsdk:mapbox-android-core:2.0.1') {
exclude group: 'com.mapbox.common', module: 'common'
}
}
如果您想强制使用冲突依赖项的特定版本,则只需调整您的 app/build.gradle
configurations.all {
resolutionStrategy {
force 'com.mapbox.common:common:24.8.0'
}
}
进行更改后,运行:
./gradlew clean
./gradlew build
如果上述解决方案不起作用,请尝试按照文档
正确执行安装步骤