Просто определите конструкторы так:

я есть пользовательское представление, написанное на Kotlin с использованием JvmOverloads, которое может иметь значение по умолчанию.

class MyView @JvmOverloads constructor(
    context: Context,
    attrs: AttributeSet? = null,
    defStyle: Int = 0,
    defStyleRes: Int = 0
) : LinearLayout(context, attrs, defStyle, defStyleRes)

Все отлично работает в Android 5.1 и выше.

Однако, это терпит крах в 4.4, так как у конструктора в 4.4 нетdefStyleRes, Как я мог это поддержать, что в 5.1 и выше я мог бы иметьdefStyleRes но не в 4.4, без необходимости явно иметь 4 конструктора, определенных как мы сделали в Java?

Примечание: ниже будет хорошо работать в 4.4, но тогда мы потеряемdefStyleRes.

class MyView @JvmOverloads constructor(
    context: Context,
    attrs: AttributeSet? = null,
    defStyle: Int = 0
) : LinearLayout(context, attrs, defStyle)

Ответы на вопрос(1)

Ваш ответ на вопрос