Вы пытались ссылаться на drawable непосредственно в вашем списке слоев вместо ссылки на атрибут stylelable (после ответа @ tynn)? это сработало? или есть причина, почему это не будет работать для вас?
Если список слоев работает на всех API, кроме 19, есть один обходной путь / компромисс, который я мог бы предложить. оставьте текущий список слоев, как он есть в папке drawable, а также в drawable-v21 (вам может понадобиться создать эту папку), а затем создайте альтернативный дизайн кнопки, работающий на API19, и сохраните его в drawable-v19, возможно, в вашем приложении. будет выглядеть не так хорошо в API19, но, по крайней мере, он все равно будет работать без ошибок на всех устройствах.
это работает, сообщая android, что он должен использовать другой извлекаемый ресурс всякий раз, когда он встречает API19, вы можете прочитать об этом больше здесь . android автоматически возьмет свой ресурс из папки dawable-vXX, ближайшей к его API, и вернется в папку drawable, если не сможет найти ресурс в этой папке drawable-vXX.
Существует также эта статья , которую я нашел у кого-то, кто тоже был одержим этим. очевидно, вы можете попробовать заменить текстовое представление на кнопку и добиться эффекта ряби, используя AppTheme
<!-- styles.xml -->
<style name="AppTheme.YellowButton">
<item name="colorButtonNormal">@color/yellow</item>
</style>
<!-- layout.xml -->
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.YellowButton"
android:text="Yellow Tint Button" />
, дайте мне знать, если он работает