Почему Dagger2 не вводит мое приложение Kotlin для Android? - PullRequest
0 голосов
/ 10 февраля 2019

В настоящее время я учусь внедрять в приложения для Android с помощью Dagger 2. Я написал очень простой код, но он отказывается работать.Моя цель - ввести MainActicity, как и должно быть.Он строит Мой код:

class MainActivity : AppCompatActivity() {

   @Inject lateinit var info: Info
    override fun onCreate(savedInstanceState: Bundle?) {
        AndroidInjection.inject(this)
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        txt_view.text = info.textInformation
    }
}

class Info {val textInformation = "You are able to read this"    }
@Module
class InfoModule{
    @Provides
    fun info ():Info{
        return Info()
    }
}

class CustomApp : Application (),HasActivityInjector{

    @Inject
    lateinit var dispatchingAndroidInjector: DispatchingAndroidInjector<Activity>

    override fun activityInjector(): AndroidInjector<Activity> {
        return dispatchingAndroidInjector
    }
}

@Component(modules = arrayOf(AndroidInjectionModule::class,
    ActivityModule::class))
interface ApplicationComponent{
    fun inject(application: CustomApp)
}

@Module
abstract class ActivityModule{
    @ContributesAndroidInjector(modules = arrayOf(InfoModule::class))
    abstract fun contributeInfoActivityInjector():MainActivity
}

1 Ответ

0 голосов
/ 10 февраля 2019

Ответ в том, что я забыл добавить этот код в класс CustomApp и .CustomApp в файл манифеста

override fun onCreate() {
    super.onCreate()
    initDi()
}

private fun initDi() {
    DaggerApplicationComponent.builder().build().inject(this)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...