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

无法为纯Java模块添加Dagger 2依赖的技术求助

解决纯Java模块中Dagger 2的依赖配置问题

我太懂这种拆分模块时踩依赖配置坑的感觉了——纯Java模块(比如你的Core和ViewModels)的Dagger 2配置和Android应用模块确实有细微差异,不过调整起来很简单,咱们一步步来:

1. 补全正确的依赖配置

从你给出的build.gradle片段来看,核心问题是注解处理器的依赖没写完整,而且要确保Dagger核心库和编译器版本完全一致。下面是纯Java库模块的完整配置:

apply plugin: 'java-library'

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    
    // Dagger 2核心依赖
    implementation 'com.google.dagger:dagger:2.15'
    // 必须添加的Dagger注解处理器,用来生成依赖注入的代码
    annotationProcessor 'com.google.dagger:dagger-compiler:2.15'
}

2. 适配Java版本(关键细节)

Dagger 2.15要求Java 8及以上编译环境,如果你的模块还在用低版本Java,一定要加上这段配置,否则会出现编译报错:

java {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}

3. 多模块协作的额外提示

如果你的Java模块需要给其他模块暴露Dagger组件(比如Core模块的Component要给ViewModels或主应用模块用),记得把Dagger核心依赖的范围从implementation改成api,这样上层模块才能访问到组件类:

// Core模块的依赖配置(供其他模块调用时)
api 'com.google.dagger:dagger:2.15'
annotationProcessor 'com.google.dagger:dagger-compiler:2.15'

4. 验证配置是否生效

配置完后,执行./gradlew clean build(或者在Android Studio里点Build -> Make Project),如果编译通过,并且能在模块的build/generated/source/apt目录下看到Dagger自动生成的类(比如DaggerXXXComponent),就说明配置没问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:33:13