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

Gradle本地jar配置Dagger AnnotationProcessor依赖报错问题

问题根因

annotationProcessor 配置引入本地jar时,不会自动解析拉取jar的传递依赖;而用Maven坐标引入依赖时,Gradle会自动把dagger-compiler关联的所有依赖包都加入注解处理器类路径。只单独引入dagger-compiler-2.41.jar时,会漏掉它运行必需的依赖包,报错中缺失的JavacBasicAnnotationProcessor就不在dagger-compiler核心jar包内。
另外注意:注解处理器的类路径和业务代码的implementation类路径是完全隔离的,之前配置在implementation下的Dagger相关jar,注解处理器运行时无法读取。

解决方案

二选一即可:

方案1:使用全量打包的fat jar(最省事)

下载Dagger 2.41版本对应的all分类jar包,文件名是dagger-compiler-2.41-all.jar,这个包已经把注解处理器运行需要的所有依赖都shade整合到单个jar里了,直接配置即可:

annotationProcessor files('libs/dagger-compiler-2.41-all.jar')

原有implementation下的本地jar配置不需要改动。

方案2:凑齐所有传递依赖jar

如果不想用fat jar,需要把dagger-compiler 2.41运行依赖的所有jar都下载到libs目录,全部加入annotationProcessor配置,需要补的jar包含但不限于(版本必须和dagger 2.41依赖的版本完全匹配):

  • dagger-spi-2.41.jar
  • javapoet-1.13.0.jar
  • guava-31.1-jre.jar
  • kotlinx-metadata-jvm-0.3.0.jar
  • auto-common-1.2.1.jar
  • room-compiler-processing-2.4.0.jar(报错缺失的类就在这个包内)

配置示例:

annotationProcessor files(
    'libs/dagger-compiler-2.41.jar',
    'libs/dagger-spi-2.41.jar',
    'libs/javapoet-1.13.0.jar',
    'libs/guava-31.1-jre.jar',
    'libs/kotlinx-metadata-jvm-0.3.0.jar',
    'libs/auto-common-1.2.1.jar',
    'libs/room-compiler-processing-2.4.0.jar'
)
注意事项

不要尝试把注解处理器依赖放到implementation配置下,两个配置的类路径互相隔离,放过去依然会报类找不到的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 01:03:33