草庐IT

android - 使用 dagger2 时未生成 DataBindingComponent

编译我的应用程序时,我在所有生成的WhatFragmentOrActivityBinding类上都收到以下错误:error:cannotfindsymbolprotectedWhateverFragmentOrActivityBinding(DataBindingComponent_bindingComponent,View_root,^symbol:classDataBindingComponentlocation:classWhateverFragmentOrActivityBindingDataBindingComponent类似乎没有生成。查看DataBindingCompon

android - Dagger 2 androidx fragment 不兼容类型

我正在使用Dagger2.21,当我尝试这样做时@ModuleinternalabstractclassFragmentModule{@ContributesAndroidInjectorinternalabstractfunloginFragment():LoginFragment}和@Singleton@Component(modules=[AndroidSupportInjectionModule::class,AppModule::class,ActivityModule::class,ViewModelBuilder::class,ViewModelModule::class

android - Dagger2 + Kotlin : lateinit property has not been initialized

我正在尝试将ViewModelFactory注入(inject)到我的Activity中,但它一直抛出同样的错误:lateinit属性viewModelFactory尚未初始化。我找不到我可能做错了什么。从我的类(class)中查看上面的代码AppComponent.kt@Component(modules=[(AppModule::class),(NetworkModule::class),(MainModule::class)])interfaceAppComponent{funinject(application:TweetSentimentsApplication)funinj

android - Dagger 2 无法访问 Retrofit

我正在尝试使用Dagger2(带有Android模块)向我的存储库提供一个Retrofit实例。购买我遇到了错误:Error:cannotaccessRetrofit像毕加索这样的其他实例被成功注入(inject),我只是在改造方面遇到了问题。我的模块@ModuleclassNetworkModule{@Provides@SingletonfunprovidesRetrofit():Retrofit{returnRetrofit.Builder().addConverterFactory(GsonConverterFactory.create()).baseUrl(URL_BASE).

android - Dagger 注入(inject)不适用于 Kotlin 中的 "object"

在花费大量时间试图弄清楚为什么我的Dagger注入(inject)不起作用之后;我意识到Kotlin中的“对象”类型是问题所在。以下不起作用,注入(inject)的“属性”为空。objectSomeSingleton{@Injectlateinitvarproperty:Propertyinit{DaggerGraphController.inject(this)}}但是,以下DID可以正常工作:classNotSingleton{@Injectlateinitvarproperty:Propertyinit{DaggerGraphController.inject(this)}}我尝

android - Dagger + Kotlin 不注入(inject)

我为DI研究Dagger2,我只是做了这段代码来注入(inject)Retrofit:NetModule.kt@ModuleclassNetModule(valbaseUrl:String){@Provides@SingletonfunprovideRetrofit():Retrofit{[somelogichere]}}AppModule.kt@ModuleclassAppModule(valmApplication:Application){@Provides@SingletonfunprovideApplication():Application{returnmApplicati

android - 使用 Dagger 2 + Kotlin + ViewModel 注入(inject) ViewModel

classSlideshowViewModel:ViewModel(){@InjectlateinitvarmediaItemRepository:MediaItemRepositoryfuninit(){Whatgoeshere?}所以我正在尝试学习Dagger2,以便让我的应用更易于测试。问题是,我已经集成了Kotlin并且正在开发Android架构组件。我知道构造函数注入(inject)更可取,但这对于ViewModel是不可能的。相反,我可以使用lateinit来注入(inject),但我不知道如何注入(inject)。我需要为SlideshowViewModel创建一个Com

android - Kotlin + Dagger 2 : cannot be provided without an @Provides-annotated method

我不明白为什么会出现此错误:Error:(12,2)error:[dagger.android.AndroidInjector.inject(T)]java.util.Map,?extendsjavax.inject.Provider>cannotbeprovidedwithoutan@Provides-annotatedmethod.publicabstractinterfaceApplicationComponent{^java.util.Map,?extendsjavax.inject.Provider>isinjectedatcom.chintansoni.android.ar

kotlin - 我可以在 Kotlin 中使用 Dagger 2 的场注入(inject)吗?

我发布了一个问题(Dagger2doesnotgeneratethecomponentclass(Android,Kotlin)),经过一些实验,似乎问题可能是由于Kotlin隐藏了该字段。classCoffeeShop{@InjectvartheCoffee:Coffee?=null}错误信息是,:app:kaptDebugKotline:...\CoffeeShop.java:7:error:Daggerdoesnotsupportinjectionintoprivatefieldse:private....CoffeetheCoffee;theCoffee在我的源代码中不是私有(

android - 使用 Dagger Android 处理器的 kapt 构建失败

我正在尝试将DaggerAndroid处理器(记录为here)与KotlinAnnotationProcessingTool一起包含在我的项目中。(kapt)。我在build.gradle文件中包含了正确的依赖项:applyplugin:'com.android.application'applyplugin:'kotlin-android'applyplugin:'kotlin-kapt'android{compileSdkVersion25buildToolsVersion"25.0.2"defaultConfig{applicationId"com.example.app"min