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

Use Dagger generated test code in Android

我正在尝试使用 Dagger2 in my android project as explained in hitherejoe/Android-Boilerplate。在设置项目时,我在构建时遇到了以下错误。

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

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

知道如何将 test/debug 文件夹包含到源中吗? 我的依赖关系如下

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"

提前致谢。

使用:

// Dagger 2
provided "javax.inject:javax.inject:1"
compile "com.google.dagger:dagger:$DAGGER_VERSION"
apt "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']
    }
}