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

如何在Java/Kotlin中将注解处理器生成代码加入测试类路径

解决纯Kotlin模块中kaptTest生成代码无法被测试类访问的问题

针对你遇到的纯Kotlin模块里,kaptTest生成的Dagger组件无法被测试类访问的问题,我之前也碰到过类似情况,给你一个适用于纯Java/Kotlin模块的解决方案:

核心修改:配置测试源码集路径

在你的纯Kotlin模块的build.gradle文件中,添加sourceSets配置,把kaptTest生成代码的目录手动加入到测试源码路径里。因为纯Kotlin/Java模块用的是标准Gradle Java插件的源码集机制,不是Android模块的变体系统,所以之前Android项目里的applicationVariants配置不适用。

具体配置代码如下:

sourceSets {
    test.java.srcDirs += "$buildDir/generated/source/kapt/test"
}

或者更清晰的写法:

sourceSets {
    test {
        java {
            srcDirs += file("$buildDir/generated/source/kapt/test")
        }
    }
}

后续操作

  1. 点击Android Studio右上角的Sync Project with Gradle Files按钮,同步Gradle配置
  2. 执行Clean Project然后Rebuild Project,让Gradle重新生成Dagger的测试组件代码,并将新的源码路径纳入识别范围

额外排查点

  • 确认你已经正确添加了kaptTest "com.google.dagger:dagger-compiler:${dagger_version}"依赖(你已经加了,这一步没问题)
  • 检查build/generated/source/kapt/test目录下的包结构,确保生成的DaggerUnitTestComponent所在的包和你的测试类包一致,避免导包错误
  • 如果还是有问题,可以尝试删除build目录后再重新构建,彻底清理缓存

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:57:50