Articles of кинжал

Проблемы с HasSupportFragmentInjector в kotlin – DispatchingAndroidInjector – null

Я пытаюсь реализовать шаблон mvp с поддержкой кинжала 2 в своем приложении Вот объекты: class BaseApplication : Application(), HasActivityInjector { override fun onCreate() { super.onCreate() initDi() } private fun initDi(){ DaggerAppComponent.builder().application(this).build().inject(this) } @Inject lateinit var activityInjector: DispatchingAndroidInjector<Activity> override fun activityInjector(): AndroidInjector<Activity> { return activityInjector } } @Singleton @Component(modules = arrayOf(AndroidInjectionModule::class, AppModule::class, ActivityBuilder::class)) interface AppComponent { […]

Использование неверного отчета Dagger2 @ Subcomponent.Builder

Когда я использую @Subcomponent.Builder , ошибка сообщается следующим образом: Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:kaptDebugKotlin'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70) at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63) at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88) at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54) at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124) […]

Модуль Dagger не работает после преобразования из Java в Kotlin

Я создаю простое приложение для Android с Dagger 2. У него есть один общий объект и один модуль. Модуль: @Module public class MyModule { @Provides @Singleton public Hren providesHren() { return new Hren(); } } Этот модуль работает. Но когда я конвертирую его в Kotlin, я получаю ошибку времени компиляции: > Task :app:compileDebugJavaWithJavac …../DaggerMyApplicationComponent.java:26: error: […]

Невозможно предоставить квалифицированную строку с помощью Dagger2

Я пытаюсь следовать образцу здесь Я уже использовал Dagger2 с AndroidInjector успешно, но теперь я экспериментировал с новым DaggerApplication и DaggerAppCompatActivity . Я получаю сообщение об ошибке: Ошибка: (5, 1): [dagger.android.AndroidInjector.inject (T)] java.lang.String не может быть предоставлена ​​без конструктора @Inject или из метода @ Provides- или @ Produces-annotated. Я не думаю, что новые классы кинжалов […]

Проблема с инъекцией Kotlin + Dagger в зависимости от Android версии Android / SDK (?)

На прошлой неделе, при внедрении Dagger в моем текущем проекте MVP Kotlin, я тестировал его на старом телефоне с KitKat 4.4.2 (да, он все еще поддерживает все основные материальные возможности и прочее :)) из-за обслуживания основного телефона. Таким образом, на той неделе у меня были типичные проблемы, а не что-то необычное и исправлялось их более […]

Dagger2 не работает в android

У меня проблема с dagger2 Я создаю компонент, модуль, предоставляю class testModule { @Provides @Singleton fun provideTestServer(): TestService { } } и я вызвал onCreate () в MainActivity DaggerImageComponent.builder().build().inject(this) вот моя проблема DI прекрасно работает в MainActivity class MainActivity: AppCompatActivity { @Inject lateinit var testService: TestService } но другой файл не работает. object TestObject { […]

Android-библиотека, Kotlin и Dagger2

Я создаю приложение с двумя модулями: основным модулем, который является Android-библиотекой (com.android.library) и модулем приложения (com.android.application). После того, как я преобразовал файлы Java в Kotlin, проект не компилируется, что дает мне ошибку, что сгенерированные файлы Dagger 2 не найдены (неразрешенная ссылка). Но те файлы, которые в настоящее время создаются в: … ядро ​​\ сборка \ […]

Интерфейс ввода кинжала в базовом классе

Я хочу внедрить реализацию интерфейса в конструктор абстрактных классов и использовать его в дочернем классе. У меня есть ошибки времени компиляции: Error:Gradle: Dagger does not support injection into private fields Error:Gradle: Example.A cannot be provided without an @Provides-annotated method. Error:Gradle: Example.B cannot be provided without an @Inject constructor or from an @Provides-annotated method. Error:Gradle: Execution […]

«Предпочитаете вместо этого использовать процессор кинжала над этим классом» в Котлине

Я получаю эту заметку в сборке всякий раз, когда я ввожу в класс kotlin (кстати, у меня смешанный проект андроида с котлин и java). Например, после этой задачи градиента: compileStagingDebugJavaWithJavac (StagingDebug – мой вариант сборки), я получаю это сообщение: «Примечание: Генерирование MembersInjector или Factory для com.packageNameXXX.CourseDiscoveryMapFragment. Предпочитаете вместо этого запустить процессор кинжала над этим классом». […]

IncompleteAnnotationException: dagger.Provides Отсутствует тип элемента

Когда я добавляю следующий код, возникает ошибка: @Singleton @Provides fun provideGson() : Gson { return Gson() } Я действительно не знаю, почему.