Неразрешенный справочник DaggerApplicationComponent

Я пытаюсь создать свой компонент приложения, но Dagger не создает компонент моего приложения. вот класс MyApplication

class MyApplication : Application() { companion object { @JvmStatic lateinit var graph: ApplicationComponent } @Inject lateinit var locationManager : LocationManager override fun onCreate() { super.onCreate() graph = DaggerApplicationComponent.builder().appModule(AppModule(this)).build() graph.inject(this) } } 

и вот мой класс AppComponent

 @Singleton @Component(modules = arrayOf(AppModule::class)) interface ApplicationComponent { fun inject(application: MyApplication) } 

вот скриншот введите описание изображения здесь

это мой проект на github

вот журнал ошибок

 Error:(7, 48) Unresolved reference: DaggerApplicationComponent Error:(28, 17) Unresolved reference: DaggerApplicationComponent Error:Execution failed for task ':app:compileDebugKotlin'. > Compilation error. See log for more details Information:BUILD FAILED Information:Total time: 21.184 secs Error:e: .../MyApplication.kt: (7, 48): Unresolved reference: DaggerApplicationComponent e: Unresolved reference: DaggerApplicationComponent FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:compileDebugKotlin'. > Compilation error. See log for more details * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Information:4 errors Information:0 warnings Information:See complete output in console 

Попробуйте включить создание заглушек , это может быть причиной того, что класс не отображается на этом этапе процесса сборки. В вашем файле build.gradle верхний уровень:

 kapt { generateStubs = true } 

мое решение состоит в том, чтобы добавить

 apply plugin: 'kotlin-kapt' 

и удалить

 kapt { generateStubs = true } 

Это помогло мне решить эту проблему

Добавьте это в начало build.gradle

 apply plugin: 'kotlin-kapt' 

Внутри тега android добавить

 kapt { generateStubs = true } 

А затем замените

 annotationProcessor 'com.google.dagger:dagger-compiler:2.11' 

в

 kapt 'com.google.dagger:dagger-compiler:2.11' 

Теперь Rebuild проект

 Build -> Rebuild project 

Я уже загрузил ваш проект Github. Спасибо, что поделился!

Ответ на ваш вопрос довольно прост:

 Build -> Rebuild project 

Файлы зависимостей кинжалов будут воссозданы, а приложение после запуска будет запущено с любой проблемой.

Я уже проверил это с версией Android Studio 2.1.2. Оно работает

вы должны удалить

 kapt { generateStubs = true} 

и добавьте в начало файла градиента приложения

 apply plugin: 'kotlin-kapt' 

то Кинжал позаботится обо всем остальном 🙂

Попробуйте добавить это в свой build.gradle

 android { dexOptions { incremental false } 

EDIT: видимо, через год это может произойти, если вы не примените kotlin-kapt . Также убедитесь, что вы используете kapt вместо annotationProcessor .