Я новичок с Котлин и Даггер. У меня есть небольшая проблема, которую я не могу решить, и я не могу найти решение.
Итак, вот что у меня есть:
@Module
class AppModule (app: Application) {
private var application: Application;
init {
this.application = app;
}
@Provides fun provideApplication(): Application? {
return application;
}
@Provides fun provideResources(): Resources? {
return application.resources;
}
}
@Singleton
@Component(modules = arrayOf(AppModule::class))
interface AppComponent: AppComponentBase {
public class Initializer {
private constructor(){}
companion object {
fun Init(app: Application): AppComponent? {
return DaggerAppComponent.builder().appModule(AppModule(app)).build()
}
}
}
}
AppComponentBase
: этот интерфейс содержит все методы, необходимые для этого компонента.
Теперь проблема в том, что этот класс DaggerAppComponent
не генерируется Dagger, если я делаю этот DaggerAppComponent.builder().appModule(AppModule(app)).build()
в companion object
. Если вызвать одну и ту же строку, то любой другой companion object
кинжала companion object
сгенерирует de class без проблем.
Еще одна вещь, которую я искал для решения - это создать другой класс с той же структурой и импортировать DaggerAppComponent
как внутренний объект, и у меня DaggerAppComponent
тот же результат.
Мне не нужно, чтобы инициализация компонента была снаружи. Итак, есть ли другое альтернативное решение, или я что-то не так делаю?