Android依赖项与aar中嵌入的jar冲突

Android依赖项与aar中嵌入的jar冲突,android,gradle,gradle-dependencies,Android,Gradle,Gradle Dependencies,我正在使用Android库项目,将aar作为应用程序模块导入。该应用程序在调试模式下编译良好,但当我尝试在发行版中编译时,会出现以下错误: Error: Program type already present: com.google.gson.DefaultDateTypeAdapter 因此,我仔细研究了我对gson的依赖关系,发现aar文件中包含了一堆嵌入的jar文件,它似乎与我的外部依赖关系相冲突,特别是改型、OkHttp和gson 当我导入aar模块时,我试图排除com.google

我正在使用Android库项目,将aar作为应用程序模块导入。该应用程序在调试模式下编译良好,但当我尝试在发行版中编译时,会出现以下错误:

Error: Program type already present: com.google.gson.DefaultDateTypeAdapter
因此,我仔细研究了我对gson的依赖关系,发现aar文件中包含了一堆嵌入的jar文件,它似乎与我的外部依赖关系相冲突,特别是改型、OkHttp和gson

当我导入aar模块时,我试图排除com.google.code.gson组,但运气不好,它没有改变任何东西:

implementation(project(':ONprintWS')) {
    exclude group: 'com.google.code.gson'
}
我还认为我可以删除build.gradle中的改装依赖项,看看它们是如何从aar中包含的,但是当我这样做时,我的类再也找不到改装/gson包了

我已经要求SDK维护人员使用可传递依赖项在不使用嵌入式jar的情况下重建SDK,但这可能暂时不会发生,是否有必要删除嵌入式jar

编辑以显示渐变排除,仍不工作


您可以尝试为给定依赖项提供解决策略,而不是使用exclude,例如:

configurations.all { 
    resolutionStrategy { 
       force "com.android.support:support-v13:$SUPPORT_LIBRARY_VERSION" 
    } 
}

在依赖项部分。这将确保为给定的软件包指定特定版本

删除我的答案,因为它抱怨找不到GSON,并且在添加一次GSON时抱怨它是重复的,这毫无意义。请在onprint.com上提交一份支持票说实话,这感觉不像是一个简单的依赖冲突问题……我让onprint SDK维护人员删除了嵌入的JAR,现在它可以正常工作了。因此,他们的嵌入式JAR和我的依赖项之间存在依赖冲突,但就我而言,我不知道为什么排除和解决策略不起作用。gradle似乎无法访问aar包中嵌入的JAR。嗯,是的,我猜可能是这样的?很高兴你把它整理好了!
configurations.all { 
    resolutionStrategy { 
       force "com.android.support:support-v13:$SUPPORT_LIBRARY_VERSION" 
    } 
}