android - 在 Android 中使用 Dagger 生成的测试代码

标签 android android-testing dagger-2

我正在尝试使用 Dagger2在我的 android 项目中,如 hitherejoe/Android-Boilerplate 中所述.在设置项目时,我在构建时遇到了以下错误。

Error:(30, 26) error: cannot find symbol variable DaggerTestComponent

在深入研究文档和生成的代码后,我发现代码不是在 debug (/app/build/generated/source/apt/debug/) 文件夹中生成的,而是在 test/debug(/app/build/generated/源/apt/测试/调试)文件夹。 所以在我的测试源文件夹下无法导入生成的DaggerTestComponent。

任何线索如何将测试/调试文件夹包含到源代码中? 我的依赖如下

testCompile 'com.neenbedankt.gradle.plugins:android-apt:1.8'
compile "com.google.dagger:dagger:$DAGGER_VERSION"
apt "com.google.dagger:dagger-compiler:$DAGGER_VERSION"
provided 'javax.annotation:jsr250-api:1.0'
compile 'javax.inject:javax.inject:1'
testApt "com.google.dagger:dagger-compiler:$DAGGER_VERSION"

提前致谢。

最佳答案

我遇到了同样的问题...我通过添加生成的测试源目录解决了这个问题:

android {
    sourceSets {
        // add dagger generated files (works only with debug build)
        test.java.srcDirs += ['build/generated/source/apt/test/debug']
    }
}

关于android - 在 Android 中使用 Dagger 生成的测试代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41429025/

相关文章:

android - 未解析的引用 :test in KoinTest

kotlin - Dagger 2 Kotlin - @Binds 方法的 @Named 限定符

android - 从 Dagger2 迁移到 Hilt

java - Android后台服务定时器无法正常工作

java - 将数据从 android 发送到网络服务器

android - 如何在 firebase 身份验证中验证用户电子邮件?

android - 将 @Component.Builder 与构造函数参数一起使用

android - 按下按钮时如何隐藏/显示元素?

android - 在 Espresso 中监控 Picasso 的 IdlingResource

Android 测试用例在 Debug模式下不工作