Articles of кинжал.андроида

Является ли хорошей практикой использовать @Inject для Android Fragment на Dagger2?

Я использую @ContributesAndroidInjector of Dagger 2.11. Он работает без проблем со следующими источниками. @ActivityScope также работает. class MainActivity : AppCompatActivity(), HasFragmentInjector { @Inject lateinit var androidInjector: DispatchingAndroidInjector<Fragment> override fun fragmentInjector() = androidInjector @Inject lateinit var fragment: MainFragment @Inject lateinit var viewModel: MainViewModel override fun onCreate(savedInstanceState: Bundle?) { AndroidInjection.inject(this) super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) fragmentManager.beginTransaction() .replace(R.id.container, fragment) .commitAllowingStateLoss() viewModel.start("activity") […]

android.support.v4.app.FragmentManager не может быть предоставлен без @ Provides- или @ Produces-аннотированного метода

Так что я совершенно новичок в кинжале и стараюсь «подрывать» проект Kotlin MVP с активностью, а также независимыми фрагментами и независимой навигацией. Тот факт, что я использую хорошие несколько просмотров, основанных на фрагменте поддержки lib, заставил меня попробовать последние возможности поддержки андроида кинжалом. После некоторого борется с построением графа Compononent, я столкнулся с проблемой, которая […]

Проблема с компиляцией Dagger2 в Котлине

Я пытаюсь изучить инъекцию зависимости, используя Dagger2. Я создал несколько пользовательских областей и Qualifier. Я создал компонент приложения, где я хотел бы ввести определенные глобальные зависимости, а также создал компонент Activity, который будет возвращать определенные экземпляры на основе контекста активности. Теперь, когда я пытаюсь ввести глобальные экземпляры в Activity, я получаю ошибку следующим образом: e: […]

Ввод не работает со вторым конструктором

для моего текущего проекта я использую Kotlin и Dagger 2. Я хочу встраивать зависимости во вторичный конструктор, но конструктор никогда не инициализируется. class SelectionFragmentModel ():ViewModel(){ lateinit var channelInfosRepository: ChannelInfosRepository @Inject constructor(channelInfosRepository: ChannelInfosRepository) : this(){ this.channelInfosRepository = channelInfosRepository } … } В качестве обходного пути я сейчас впрыскиваю в первичный конструктор, но это не оптимально. class […]

Не удалось проанализировать: org.jetbrains.kotlin.kapt3.diagnostic.KaptError: ошибка при обработке аннотации

Я изучаю жизненный цикл кинжала, поддерживающий андроид, для инъекционной зависимости в Котлине, но они всегда не могут генерировать код зависимости кинжала. Ошибка, произошедшая с сообщением об отказе, приведена ниже: public abstract interface MainComponent { ^ java.lang.IllegalStateException: failed to analyze: org.jetbrains.kotlin.kapt3.diagnostic.KaptError: Error while annotation processing Здесь он привязан к MainComponent.kt @Singleton @Component(modules = arrayOf(AndroidSupportInjectionModule::class,AndroidInjectionModule::class,AppModule::class, NetworkModule::class, ActivityBuilder::class)) […]

Dagger2 – FragmentSubcomponentBuilder не реализует AndroidInjector.Factory

Я использую кинжал 2 и пытаюсь перевести свой Android-проект с Java на Kotlin. После успешной сборки я получаю ошибку времени выполнения: MyFragmentSubcomponentBuilder не реализует AndroidInjector.Factory С Java эта ошибка не появилась. А также я заметил, что в моем модуле ActivityBuilder все методы не используются после сборки (они должны использоваться в генерируемых классах подкомпонентов). @Module abstract […]

Как вводить издевательства с кинжалом 2.11

Я пытаюсь вводить насмешки с помощью Android Injector of Dagger 2.11. Перед использованием Android Inject я использовал для изменения инжектора в классе Application, чтобы я мог вводить mocks. Как это: class EGOApplication : Application() { lateinit var injectorComponent: InjectorComponent override fun onCreate() { super.onCreate() injectorComponent = DaggerInjectorComponent.builder() .appModule(AppModule(this)) .build() } И в моих тестах я […]

Вложить только определенные параметры в конструктор

У меня есть ведущий class PhonePresenter @Inject constructor( private val preference: DataPreference, private val ioScheduler: Scheduler = Schedulers.io()) ioScheduler – это параметр по умолчанию. Я хочу preference: DataPreference только preference: DataPreference . Теперь у меня есть исключение [dagger.android.AndroidInjector.inject(T)] io.reactivex.Scheduler cannot be provided without an @Provides-annotated method. Есть ли способ определить параметры, которые я хочу вставить […]

Kapt, Kotlin, Dagger2 Ошибка при обработке аннотации

Я получаю эту ошибку градиента после добавления com.google.dagger: зависимость от кинжала-андроида в проекте с kotlin. Это часть моего построения gradle build.gradle apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'realm-android' apply plugin: 'me.tatarka.retrolambda' apply plugin: 'kotlin-kapt' android { … kapt { generateStubs = true } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { […]

Intereting Posts
Клавиатура скрывает BottomSheetDialogFragment Каков правильный подход к «Этот класс AsyncTask должен быть статическим или может возникнуть утечка» в Kotlin Android? Room – запрос SELECT, получение или дефолт Как вызвать функцию верхнего уровня из метода или функции расширения одной и той же сигнатуры? Как мы можем использовать автоматическую перезагрузку? Есть ли лучший способ декодировать html прямо на Android? Android Spinner getDropDownView повторяет элементы после выбора Неразрешенные ссылки на стандартные элементы библиотеки Kotlin (JVM) Попытка использования ресурсов в Котлине Динамическое развертывание и запуск узлов в CORDA Котлин: когда и как следует использовать выражения лямбда Почему буквальный «-9223372036854775808» (мин. 64-битное целое число со знаком) не принимается kotlin? Универсальный расширяемый класс AND реализует интерфейс в Kotlin Как вернуть список с ненулевым элементом, с карты? Почему Kotlin не может переопределить метод List <*> оператора?