在Android

时间:2017-01-02 14:58:40

标签: android android-testing dagger-2

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

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

在深入研究文档并生成代码之后,我发现代码不会在debug(/ 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"

提前致谢。

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:-1)

使用:

// Dagger 2
provided "javax.inject:javax.inject:1"
compile "com.google.dagger:dagger:$DAGGER_VERSION"
apt "com.google.dagger:dagger-compiler:$DAGGER_VERSION"