首页 > 解决方案 > 依赖冲突问题:Here-SDK.aar 和 Directions-api.aar 文件重复类

问题描述

我正在创建一个具有“directions-api.aar”(Here-Maps 小部件库)的旧依赖项的 android 应用程序,现在我需要为 Map 的实现添加“HERE-sdk.aar”。

这导致了一个问题,有一些类在两个“aar”文件中都很常见。因此 android studio 抛出以下异常:

FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:checkDebugDuplicateClasses'.
1 exception was raised by workers: java.lang.RuntimeException:  
Duplicate class com.here.android.mpa.common.CopyrightLogoPosition found in modules HERE-sdk.jar (:directions-api:) and classes.jar (HERE-sdk.aar)
Duplicate class com.here.android.mpa.common.GeoBoundingBox found in modules HERE-sdk.jar (:directions-api:) and classes.jar (HERE-sdk.aar)
Duplicate class com.here.android.mpa.common.GeoCoordinate found in modules HERE-sdk.jar (:directions-api:) and classes.jar (HERE-sdk.aar)   
Duplicate class com.here.android.mpa.common.GeoPolygon found in modules HERE-sdk.jar (:directions-api:) and classes.jar (HERE-sdk.aar)
...

我试过了 :

'exclude group: ‘com.here.android.mpa’, module: ‘HERE-sdk’',
packagingOptions { pickFirst 'com/here/android/mpa/common/*'}

还有更多的解决方案,但这些都不起作用。

有没有人知道如何从冲突的 aar 文件中排除重复的类/依赖项?

标签: androidgradlebuild.gradlehere-apiaar

解决方案


尝试添加依赖:

implementation 'com.android.support:support-v4:28.0.0'

如日志所示,classes.jar 模块有重复的类,请尝试从 gradle 中删除冲突文件

android{
...
  configurations {
     all*.exclude group:'android.support.v4.app' module: ‘classes.jar’
     all*.exclude group:'android.support.v4.accessibilityservice' module: ‘classes.jar’
  }
}

推荐阅读