匕首看不到我自己生成的依赖项

时间:2019-05-03 10:44:16

标签: android gradle dagger-2 auto-generate kapt

我对Dagger和我自己生成的代码有疑问。

假设:

  1. 我需要为UI测试生成自己的匕首组件
  2. 我有自己的Gradle注释处理模块,该模块为带有匕首的组件提供了依赖。将此称为GeneratedTestCoreComponent。此类正确生成
  3. GeneratedTestCoreComponent构建于\build\generated\source\kapt\debug\...
  4. GeneratedTestCoreComponent用于匕首组件,像这样
@Component(modules = [UiTestModule::class],
    dependencies = [GeneratedTestCoreComponent::class])
interface TestUiComponent {}
  1. 我的注释处理器模块已正确添加到gradle中
  implementation project(path: ':processor')
  kapt(name: 'processor')

问题是。编译期间出现错误

TestUiComponent.java:6: error: cannot find symbol
@com.dagger.Component(modules = {com.xxx.xxx.UiTestModule.class}, dependencies = {GeneratedTestCoreComponent.class})

symbol: class GeneratedTestCoreComponent
TestUiComponent.java:8: error: [ComponentProcessor:MiscError] com.dagger.internal.codegen.ComponentProcessor was unable to process this interface because not all of its dependencies could be resolved. Check for compilation errors or a circular dependency with generated code.
public abstract interface TestUiComponent

其他信息。 当我将GeneratedTestCoreComponent类从构建目录复制到src(保留相同的程序包)并禁用我的处理器时,一切工作正常

1 个答案:

答案 0 :(得分:0)

尝试将kapt(name: 'processor')更改为kapt project(':processor')