1

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

Muhammad Farhan
  • 1,113
  • 10
  • 22
SuvodipMondal
  • 87
  • 1
  • 8

0 Answers0