I am getting this error on a field that is not private. I am trying to inject a boolean field in my MainActivity. This is how I defined my BaseApplication.
class BaseApplication : DaggerApplication() {
override fun applicationInjector(): AndroidInjector<out DaggerApplication>? {
return DaggerAppComponent.builder().application(this).build()
}
}
This is my AppComponent code :
@Component(
modules = [
AndroidSupportInjectionModule::class,
ActivityBuildersModule::class,
AppModule::class
]
)
interface AppComponent : AndroidInjector<BaseApplication> {
@Component.Builder
interface Builder {
@BindsInstance
fun application(application: Application) : Builder
fun build() : AppComponent
}
}
This is my ActivityBuildersModule :
@Module
abstract class ActivityBuildersModule {
@ContributesAndroidInjector
abstract fun contributeMainActivity() : MainActivity
}
This is my AppModule
@Module
class AppModule {
@Provides
fun providesAppCheck(application: Application) : Boolean = application == null
}
This is where I declared isAppNull
class MainActivity : DaggerAppCompatActivity() {
@Inject
var isAppNull : Boolean
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val tf = FontCache.get("fonts/" + "GlacialIndifference-Regular.otf", this)
TypeFaceUtil.overrideFont(this, "SERIF", tf!!)
val binding: ActivityMainBinding =
DataBindingUtil.setContentView(this, R.layout.activity_main)
val viewModel = ViewModelProvider(this).get(MainViewModel::class.java)
binding.viewmodel = viewModel
}
}
I cannot understand how to invoke the Boolean field in my MainActivity class. I am following this tutorial