我对Dagger和我自己生成的代码有疑问。
假设:
GeneratedTestCoreComponent
。此类正确生成GeneratedTestCoreComponent
构建于\build\generated\source\kapt\debug\...
GeneratedTestCoreComponent
用于匕首组件,像这样@Component(modules = [UiTestModule::class],
dependencies = [GeneratedTestCoreComponent::class])
interface TestUiComponent {}
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(保留相同的程序包)并禁用我的处理器时,一切工作正常
答案 0 :(得分:0)
尝试将kapt(name: 'processor')
更改为kapt project(':processor')