IllegalStateException с использованием библиотеки эффектов Ripple на устройствах Android M
Используя это library
реализовать Ripple Effect
и это работает просто отлично, кроме как на Android M
устройства.
На Android M Устройства попадают IllegalStateException
что говорит Underflow при восстановлении - больше восстанавливает, чем сохраняет
FATAL EXCEPTION: main
Process: com.example.ripplethings, PID: 20119
java.lang.IllegalStateException: Underflow in restore - more restores than saves
at android.graphics.Canvas.native_restore(Native Method)
at android.graphics.Canvas.restore(Canvas.java:540)
at com.andexert.library.RippleView.draw(RippleView.java:166)
1 ответ
Похоже, ошибка в самой библиотеке на Android 6.0, возможные способы избежать ошибки
1) Используйте библиотеку com.balysv:material-ripple:1.0.2, она кажется более стабильной
2) Или вы можете использовать отдельную раскладку для 21+, чтобы Android M сам справился с этой проблемой. Просто используйте подходящий держатель пульсаций для макетов и представлений
3) Или вы можете изменить сам исходный код библиотеки в соответствии с этим предложением
4) Фиксированная версия этой библиотеки доступна @ git, и вы можете использовать ее в своем Gradle, как
compile 'com.github.Hitta:RippleEffect:82cf00e551'
repositories {
...
maven { url "https://jitpack.io" }
}