У меня проблема с Dagger и моим собственным сгенерированным кодом.
Допущения:
- Мне нужно сгенерировать свой собственный компонент кинжала для тестирования пользовательского интерфейса
- У меня есть свой собственный модуль Gradle для обработки аннотаций, который предоставляет компоненту кинжала зависимости.Назовите это
GeneratedTestCoreComponent
.Этот класс сгенерирован правильно GeneratedTestCoreComponent
построен на \build\generated\source\kapt\debug\...
GeneratedTestCoreComponent
используется в компоненте кинжала, что-то вроде этого
@Component(modules = [UiTestModule::class],
dependencies = [GeneratedTestCoreComponent::class])
interface TestUiComponent {}
Мой модуль процессора аннотаций правильно добавлен в 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
class из каталога сборки в src (сохраняя тот же пакет) и отключаю свой процессор, тогда все работает нормально