Articles of dependency injection

kotlin dagger – falla la segunda inyección

Implementando DI con daga 2 (2.8). La inyección funciona para varias dependencies, pero una. Aquí está mi código: build.gradle … apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' apply plugin: 'kotlin-android-extensions' … kapt { generateStubs = true } dependencies { … compile "com.google.dagger:dagger:$dagger_version" kapt "com.google.dagger:dagger-compiler:$dagger_version" … } Aquí mis classs Dagger: class DependencyManager(ctx: Context) { private val […]

Crash daga cuando construyes el proyecto

Cuando bash build un proyecto para generar files de Dagger, la compilation falla con una exception. ¿Podría decirme cómo solucionarlo o, al less, en qué dirección mirar? e: /home/hodzi/Projects/StudioProjects/StackViewer/app/build/tmp/kapt3/stubs/debug/com/hodzi/stackviewer/di/AppComponent.java:6: error: [com.hodzi.stackviewer.questions. di.QuestionsComponent] com.hodzi.stackviewer.questions.di.QuestionsComponent tiene ámbitos conflictivos: e: e: interfaz abstracta pública AppComponent {e: ^ e: com.hodzi.stackviewer.di.AppComponent también tiene @Singleton e: java.lang.IllegalStateException: no se pudo analizar: […]

Error de Kotlin: Dagger no admite inyección en campos privados

Uso en la actividad de kotlin ViewPager y quiero en Kotlin Fragment usar la inyección de daga. Tengo un error: Dagger no admite la inyección en campos privados. En Java Fragment el trabajo de inyección daga. ¿Por qué no puedo inyectar daga en la faragment de kotlin? en mi actividad kotlin mPagerAdapter = object : […]

Kotlin: ejecutando kapt en la línea de command para generar stubs para DI

Estoy intentando ejecutar kapt3 desde la command-line para generar stubs Java para files Kotlin. La syntax parece ser: kotlinc -P plugin:org.jetbrains.kotlin.kapt3:aptMode=stubs -classpath $CLASSPATH:$ANDROID_HOME/platforms/android-23/android.jar -d $OUT $SRCS ¿Es esto correcto? No veo el complemento en la carpeta kotlin/lib . Estoy intentando buildlo desde la fuente en este momento, pero ¿cuál es la forma "oficial" de downloadlo? […]

Guice MapBinder

Estoy usando Guice en el proyecto Java + Kotlin para inyectar el map de la implementación del algorithm en un bean específico, pero sigo recibiendo 1) No implementation for java.util.Map<java.lang.String, ? extends com.scherule.scheduling.algorithms.SchedulingAlgorithm> annotated with @com.google.inject.name.Named(value=scheduling.algorithms) was bound. while locating java.util.Map<java.lang.String, ? extends com.scherule.scheduling.algorithms.SchedulingAlgorithm> annotated with @com.google.inject.name.Named(value=scheduling.algorithms) for the 2nd parameter of com.scherule.scheduling.SchedulingJobConsumer.<init>(SchedulingJobConsumer.kt:17) while locating […]

Daga 2, no puedo inyectar presentador en mi actividad

Soy nuevo en Dagger2. Tengo un problema con inyectar presentador en mi actividad. Trato de resolver mi problema después de leer este artículo https://android.jlelse.eu/inject-interfaces-without-providing-in-dagger-2-618cce9b1e29 pero no era helpe yo. Espero que alguien me ayude, paso todo el día intentando resolverlo … aquí están mis modules: @Module class AppModule(private val appContext: Context) { @Singleton @Provides internal […]

kodein, inyecta datos a la class simple

Soy nuevo en el desarrollo de kotlin y kodein. Quiero inyectar datos a una class simple que no amplía nada. Tengo mi MainActivity que extiende KodeinAppCompatActivity() , mi fragment que extiende KodeinSupportFragment() llama a una function de mi class simple CallType . Pero esta function debe cambiar un boolean de otra class simple ConnectivitySate . […]

kodein: el valor de los datos inyectados no es el valor recuperado de los datos

En mi class CallType , pongo connectivityState.callBackState datos inyectados en true, que se inicializa en falso en mi class ConnectivitySte . Pero en mi class IncomingCallBroadcastReceiver , mi llamada de datos callBackState no es true sino false . class CallType { val kodein = Kodein { bind<ConnectivityState>() with provider { ConnectivityState() } } private val […]

Android Dagger: no puedo proporcionar una class externa sin el constructor @Inject

EDITAR Resolvió el problema. Ver mi publicación a continuación. Estoy escribiendo una aplicación de Android con el uso de Dagger y Kotlin. Quiero inyectar la class java.text.SimpleDateFormat en mi class DateHelper @Singleton class DateHelper @Inject constructor(var dateFormat: SimpleDateFormat) { … } Tengo un module, que @Provides SimpleDateFormat . @Module class DateModule { @Singleton @Provides fun […]

¿Qué hay de malo en utilizar la inyección de setter para Android ViewModel vs Implementing e Injecting ViewModel.Factory?

He estado luchando para get un singleton Dagger inyectado en un componente de Android (Servicio) y un ViewModel. Vea esta pregunta como reference. No he encontrado un buen ejemplo de cómo simplemente insert un campo en un service y un campo en un model de vista con el mismo object. Si hay una solución simple […]