You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android引入QuickBooks相关依赖后出现Jackson重复类错误如何解决

Android集成QuickBooks Jackson重复类解决方案

你遇到的重复类问题核心是两个原因:

  1. 引入的ipp-v3-java-devkit和oauth2-platform-api使用了jar-with-dependencies分类器,属于自带所有依赖的胖包,内部已经打包了完整的Jackson库
  2. 之前的排除规则写错了Jackson的groupId,正确的Jackson annotations的groupId是com.fasterxml.jackson.core不是com.fasterxml.jackson,所以排除未生效

方案1:修正依赖排除规则

替换你的依赖配置为以下内容:

implementation ('com.intuit.quickbooks-online:ipp-v3-java-data:6.2.0') {
    exclude group: "com.sun.istack", module: "istack-commons-runtime"
    exclude group: "com.sun.xml.bind", module: "jaxb-impl"
    exclude group: "org.glassfish.jaxb", module: "jaxb-runtime"
    exclude group: "org.springframework", module: "spring-jcl"
    exclude group: "org.apache.httpcomponents"
}

implementation (group: 'com.intuit.quickbooks-online', name: 'ipp-v3-java-devkit', version: '6.2.0', classifier: 'jar-with-dependencies') {
    exclude group: "org.apache.httpcomponents"
    // 正确排除Jackson相关包
    exclude group: "com.fasterxml.jackson.core"
    exclude group: "com.fasterxml.jackson.databind"
    exclude group: "com.fasterxml.jackson.module"
}

implementation (group: 'com.intuit.quickbooks-online', name: 'oauth2-platform-api', version: '6.2.0', classifier: 'jar-with-dependencies') {
    exclude group: "org.apache.httpcomponents"
    // 正确排除Jackson相关包
    exclude group: "com.fasterxml.jackson.core"
    exclude group: "com.fasterxml.jackson.databind"
    exclude group: "com.fasterxml.jackson.module"
}

配置完成后执行./gradlew clean再重新构建项目。


方案2:全局强制统一Jackson版本

如果修正排除规则后仍有冲突,在模块级build.gradle的android闭包同级添加全局版本锁定配置:

configurations.all {
    resolutionStrategy {
        // 全局强制指定Jackson版本,覆盖所有依赖引入的Jackson版本
        force 'com.fasterxml.jackson.core:jackson-annotations:2.9.0'
        force 'com.fasterxml.jackson.core:jackson-core:2.9.0'
        force 'com.fasterxml.jackson.core:jackson-databind:2.9.0'
    }
}

方案3:弃用胖包依赖,改用普通依赖

如果以上方案都无效,放弃使用带jar-with-dependencies分类器的胖包,改用普通版本的依赖,自行按需引入缺失的依赖:

// 去掉classifier,使用普通版本依赖
implementation 'com.intuit.quickbooks-online:ipp-v3-java-devkit:6.2.0'
implementation 'com.intuit.quickbooks-online:oauth2-platform-api:6.2.0'

普通版本不会自带第三方依赖,不会出现内置类冲突的问题,缺失的依赖可以根据编译报错单独引入即可。


方案4:兜底方案,构建时排除重复类

如果还有残留的重复类报错,在android闭包下添加packagingOptions配置,构建时直接过滤重复的类文件:

android {
    // 其他配置...
    packagingOptions {
        exclude 'com/fasterxml/jackson/annotation/**'
        exclude 'com/fasterxml/jackson/core/**'
        exclude 'com/fasterxml/jackson/databind/**'
    }
}

内容的提问来源于stack exchange,提问作者Rahul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 04:54:06