Кинжал 2: Невозможно найти сгенерированный класс в Intellij Idea (Kotlin)

Я пытался написать приложение, чтобы понять искру и кинжал 2. Но не смог использовать созданные кинжалы.

Есть несколько вопросов, подобных этому, но я не могу решить проблему, используя любой из них.

Мой проект можно найти в github здесь

Файл build.gradle выглядит так:

... apply plugin: 'kotlin-kapt' dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version" compile "com.sparkjava:spark-kotlin:$spark_kotlin_version" compile "org.slf4j:slf4j-log4j12:$slf4j_version" compile "com.google.dagger:dagger:$dagger_version" kapt "com.google.dagger:dagger-compiler:$dagger_version" testCompile group: 'junit', name: 'junit', version: '4.12' } .... 

Это класс SparkSetup.kt который я пытаюсь ввести. Модуль и компонент для этого присутствуют в пакете co.pissarra.util.dagger

Содержимое SetupModule.kt выглядит так:

 @Module class SetUpModule { @Provides @Singleton fun provideSparkSetup() : SparkSetup { return SparkSetup() } } 

И это класс AppComponent.kt

 @Singleton @Component(modules = arrayOf(SetUpModule::class)) interface AppComponent { fun sparkSetup() : SparkSetup } 

В идеале должен существовать класс по имени DaggerAppComponent , который присутствует в каталоге сборки (как сгенерирован, так и в классах). Но это работает только в том случае, если я не использую DaggerAppComponent любом месте проекта. Если я попытаюсь использовать это, идея intellij даст ошибку, которую не удалось создать с помощью Unresolved reference: DaggerAppComponent и проекта.

Я хотел бы изменить файл ContainerRunner.kt и вместо SparkSetup().init() вызова SparkSetup().init() , я хотел бы сделать это через DI.

Это похоже на KT-17923 . Обновите версию плагина IDE от Kotlin до версии 1.1.60 или 1.2-бета.

Кроме того, в процессе работы вы можете указать созданные каталоги вручную:

 apply plugin: 'idea' idea { module { sourceDirs += file('build/generated/source/kapt/main') generatedSourceDirs += file('build/generated/source/kapt/main') } } 

Обратите внимание, что вам нужно повторно импортировать проект после добавления его в файл build.gradle .

Единственное, что кажется странным для меня, это то, что ошибка также воспроизводится во время сборки. Проверьте, находится ли DaggerAppComponent в одном пакете с классом, который ссылается на него (или есть директива import ).