Я получаю эту ошибку в поле, которое не является частным. Я пытаюсь ввести логическое поле в свой MainActivity. Вот как я определил свое BaseApplication.
class BaseApplication : DaggerApplication() {
override fun applicationInjector(): AndroidInjector<out DaggerApplication>? {
return DaggerAppComponent.builder().application(this).build()
}
}
Это мой код AppComponent:
@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
}
}
Это мой ActivityBuildersModule:
@Module
abstract class ActivityBuildersModule {
@ContributesAndroidInjector
abstract fun contributeMainActivity() : MainActivity
}
Это мой AppModule
@Module
class AppModule {
@Provides
fun providesAppCheck(application: Application) : Boolean = application == null
}
Здесь я объявил 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
}
}
Я не могу понять, как вызвать логическое поле в моем классе MainActivity. Я следую этому руководству.