До API 28 любой класс, который расширяет TypedArray, не требует предоставления конструктора, в то время как TypedArray имеет собственный настраиваемый конструктор.Насколько я понимаю, в JAVA, когда родительский класс предоставляет собственный конструктор, дочерний класс, который его расширяет, должен предоставлять конструктор для вызова конструктора родителя.Так что случай TypedArray действительно странный для меня, но наш код следует странности и до сих пор работает нормально.
Однако в API 28 и выше внезапный запуск компилятора требует, чтобы все дочерние классы теперь предоставили конструктор.Я сделал так, как предлагал, и вызвал super (resources) внутри него, но потом я потерпел крах моего приложения, сообщив «Нет такого метода для super (resources)» ????Кто-нибудь знает, что происходит за кулисами?
Мой небольшой фрагмент кода для демонстрации требования наследования конструктора:
Расширение класса TypedArray, как ни странно, не нуждается вконструктор
Но при переходе на API 28 он начинает запрашивать конструктор без явных изменений в классе TypedArray (конструкторчасть такая же).