Кинжал не видит мою собственную сгенерированную зависимость - PullRequest
0 голосов
/ 03 мая 2019

У меня проблема с Dagger и моим собственным сгенерированным кодом.

Допущения:

  1. Мне нужно сгенерировать свой собственный компонент кинжала для тестирования пользовательского интерфейса
  2. У меня есть свой собственный модуль Gradle для обработки аннотаций, который предоставляет компоненту кинжала зависимости.Назовите это GeneratedTestCoreComponent.Этот класс сгенерирован правильно
  3. GeneratedTestCoreComponent построен на \build\generated\source\kapt\debug\...
  4. 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 (сохраняя тот же пакет) и отключаю свой процессор, тогда все работает нормально

1 Ответ

0 голосов
/ 03 мая 2019

Попробуйте изменить kapt(name: 'processor') на kapt project(':processor')

...