Nano Hash - криптовалюты, майнинг, программирование

Ошибка Kotlin: Dagger не поддерживает внедрение в приватные поля private boolean isAppNull;

Я получаю эту ошибку в поле, которое не является частным. Я пытаюсь ввести логическое поле в свой 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. Я следую этому руководству.


  • Покажите код, где isAppNull реализован и внедряется 31.01.2020
  • Я думаю, что кинжал не заботится об именах, а заботится только о возвращаемых типах. поэтому он должен получить значение из метода ProvideAppCheck(), определенного в AppModule. 31.01.2020
  • Не используйте private при внедрении isAppNull 31.01.2020
  • Хорошо, я отредактировал и добавил класс MainActivity, где я объявил поле isAppNull. 31.01.2020
  • Нет, это другое. Я следовал этому руководству: youtube.com/ 31.01.2020

Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..