Dagger-рефлект: класс определяет несколько конструкторов @ Inject-annotations - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь использовать dagger-рефлект в своем приложении, чтобы повысить скорость сборки для отладочной версии приложения.

К сожалению, мое приложение вылетает во время выполнения и отображает трассировку стека со следующей ошибкой:

java.lang.IllegalStateException: com.example.MyClass defines multiple 
@Inject-annotations constructors

MyClass, написанный на kotlin, выглядит следующим образом:

class MyClass @Inject constructor(@HostQualifier host: String = "")  

, и я использую такой модуль кинжала, чтобы предоставить хост:

@Module
object SampleModule {
    @Provides
    @JvmStatic
    @HostQualifier
    fun provideHost(): String = "Example"
}

1 Ответ

0 голосов
/ 05 июля 2019

Проблема заключается в использовании значений по умолчанию kotlin во встроенном конструкторе.

Код такой:

class MyClass @Inject constructor(@HostQualifier host: String = "") 

создает второй конструктор с аннотацией @Inject. Вот почему это вызывает исключение:

MyClass defines multiple @Inject-annotations constructors

Решение - просто удалить значение по умолчанию из конструктора:

class MyClass @Inject constructor(@HostQualifier host: String) 
...