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

Android远程依赖typesense-java出现重复类错误,本地JAR无此问题

问题原因及解决办法

核心原因

这个问题的本质是typesense-java:0.0.9-beta9的远程发布包存在配置缺陷:

  • 该版本发布到Maven Central的jar是一个Uber Jar(打包了所有依赖类的胖包),内部包含了jackson-databind、okio等库的完整类文件。
  • 同时它的pom.xml中仍将这些依赖声明为compile/runtime范围,导致Android Gradle在解析远程依赖时,会自动下载这些依赖的独立jar包,最终项目中出现同一类的两份副本,触发重复类错误。

而本地引入jar时,Gradle不会读取对应pom.xml,也就不会自动引入这些传递依赖,因此不会出现重复;普通Java Gradle项目的依赖冲突处理策略或默认配置与Android插件不同,可能自动忽略了重复类,或者未触发严格的重复类检查。

解决办法

方法1:排除远程依赖的传递依赖

在引入远程依赖时,手动排除所有冲突的传递依赖,避免重复引入:

implementation('org.typesense:typesense-java:0.0.9-beta9') {
    // 排除jackson相关依赖
    exclude group: 'com.fasterxml.jackson.core', module: 'jackson-databind'
    exclude group: 'com.fasterxml.jackson.core', module: 'jackson-core'
    exclude group: 'com.fasterxml.jackson.core', module: 'jackson-annotations'
    // 排除okio依赖
    exclude group: 'com.squareup.okio', module: 'okio'
    // 如有其他冲突类,按同样方式排除对应依赖
}

方法2:使用本地Jar包

直接下载该版本的Jar包放入项目libs目录,用本地依赖方式引入,这是你已经验证有效的方案:

implementation files('libs/typesense-java-0.0.9-beta9.jar')

方法3:升级到修复后的版本

检查typesense-java的后续正式版本,通常这类发布配置问题会在后续版本中修复,使用最新版本可避免此类问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 22:00:32